<?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-1622089077919681757</id><updated>2012-01-24T15:03:16.297-08:00</updated><title type='text'>Key to Content</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-3378269628348180239</id><published>2011-09-09T09:57:00.000-07:00</published><updated>2011-09-09T10:01:01.821-07:00</updated><title type='text'>Resetting a Forgotten Alfresco admin password</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;It may never happen to you, but if you ever lose or forget the password for the administration user in Alfresco, it is possible to reset that password within the database.&lt;br /&gt;&lt;br /&gt;While the reset process is easy to do, it involves fiddling directly with the database, something which you should be careful with, especially if that's not something you typically work with. &amp;nbsp;If you're having problems with a production system, by all means, experiment first on a test system. &amp;nbsp;You don't want to make a bad situation worse.&lt;/div&gt;&lt;br /&gt;First run the following SQL to find out the identifying parameters for how the admin password is stored:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;SELECT anp1.node_id,&lt;br /&gt;       anp1.qname_id,&lt;br /&gt;       anp1.string_value as hash_pass,&lt;br /&gt;       anp2.string_value as user_string&lt;br /&gt;FROM alf_node_properties anp1&lt;br /&gt;        INNER JOIN alf_qname aq1&lt;br /&gt;           ON aq1.id       = anp1.qname_id&lt;br /&gt;        INNER JOIN alf_node_properties anp2 &lt;br /&gt;           ON anp2.node_id = anp1.node_id&lt;br /&gt;        INNER JOIN alf_qname aq2            &lt;br /&gt;           ON aq2.id       = anp2.qname_id&lt;br /&gt;WHERE aq1.local_name    = 'password'&lt;br /&gt;AND aq2.local_name    = 'username';&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;After doing that, you'll see something like the following:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Yr5s1zuMfhg/TmpD1JIGfSI/AAAAAAAAAUQ/W6zOjwRCmus/s1600/xxxx.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="244" src="http://2.bp.blogspot.com/-Yr5s1zuMfhg/TmpD1JIGfSI/AAAAAAAAAUQ/W6zOjwRCmus/s640/xxxx.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;In this example, we can see that the password for admin is set to the default MD5 hash value for 'admin'. &amp;nbsp;You can set it back to some other MD5 hash value, but then of course, you'd need to calculate the MD5 value for whatever your desired password is. &amp;nbsp;It's easier to set it back to the default value corresponding to 'admin': &amp;nbsp;'209c6174da490caeb422f3fa5a7ae634'. &amp;nbsp;Then, once you can log back into Alfresco again you would be able to change the password to something else.&lt;br /&gt;&lt;br /&gt;To update the password, the following SQL works:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;UPDATE alf_node_properties &lt;br /&gt; SET string_value='209c6174da490caeb422f3fa5a7ae634'&lt;br /&gt; WHERE &lt;br /&gt; node_id=THEADMINNODEID&lt;br /&gt; and&lt;br /&gt; qname_id=THEADMINQNAME&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Or, from the example shown in the screenshot above:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;UPDATE alf_node_properties &lt;br /&gt; SET string_value='209c6174da490caeb422f3fa5a7ae634'&lt;br /&gt; WHERE &lt;br /&gt; node_id=4&lt;br /&gt; and&lt;br /&gt; qname_id=10&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-3378269628348180239?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/3378269628348180239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2011/09/resetting-forgotten-alfresco-admin.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/3378269628348180239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/3378269628348180239'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2011/09/resetting-forgotten-alfresco-admin.html' title='Resetting a Forgotten Alfresco admin password'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-Yr5s1zuMfhg/TmpD1JIGfSI/AAAAAAAAAUQ/W6zOjwRCmus/s72-c/xxxx.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-3294922854660646208</id><published>2011-08-13T22:58:00.000-07:00</published><updated>2011-08-15T06:31:10.745-07:00</updated><title type='text'>Alfresco 3 Cookbook: Quick Answers to Common Problems by Snig Bhaumik</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;i&gt;&lt;a href="http://www.packtpub.com/alfresco-3-cookbook/book"&gt;Alfresco 3 Cookbook: Quick Answers to Common Problems&lt;/a&gt;&lt;/i&gt;&amp;nbsp;by &lt;a href="http://in.linkedin.com/in/snigbhaumik"&gt;Snig Bhaumik&lt;/a&gt; is the latest book from &lt;a href="http://www.packtpub.com/"&gt;PACKT Publishing&lt;/a&gt; about the &lt;a href="http://www.alfresco.com/"&gt;Alfresco&lt;/a&gt; Open Source &lt;a href="http://en.wikipedia.org/wiki/Enterprise_Content_Management"&gt;Enterprise Content Management System&lt;/a&gt;.(CMS). &amp;nbsp;The book is now complete and is available in both print and electronic format. &amp;nbsp;Prior to the book being completed, parts of it had been&amp;nbsp;&lt;a href="http://alfresco%203%20cookbook%20available%20in%20raw%20format/"&gt;&amp;nbsp;made available earlier&lt;/a&gt;&amp;nbsp;by PACKT&amp;nbsp;in a pre-release &lt;a href="http://www.packtpub.com/article/raw-books-announced"&gt;RAW format&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;When I heard about this book, I was immediately interested. &amp;nbsp;The concept of having a cookbook-style reference book filled with easy-to-follow self-contained recipes for how to perform common tasks in Alfresco is very appealing.&lt;br /&gt;&lt;br /&gt;The book is about 380 pages long and is organized into 14 chapters, each chapter covering one category of Alfresco usage, like the Administration Console, the Web Client, and the Content Model. &amp;nbsp;Then within each chapter, there are a number of recipes that describe how to perform specific tasks. &amp;nbsp;In total, the book covers more than 70 such recipes. &amp;nbsp;For example, Chapter 6 covers how to customize the Alfresco Web Client and includes recipes like the following:&lt;br /&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Changing languages in the Login page&lt;/li&gt;&lt;li&gt;Changing textbox length and text area size&lt;/li&gt;&lt;li&gt;Controlling the Date Picker&lt;/li&gt;&lt;li&gt;Controlling the sidebar display&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Each of the sections or 'recipes' is then broken down into a brief description of the task followed by a sub-section titled "Getting Ready" and then another one titled "How to do it...". &amp;nbsp;There's also an occasional "There's more..." section that contains a more in-depth explanation for why or how something works. &amp;nbsp;The "How to do it..." section is the heart of the recipe and it breaks down each task into step-by-step instructions for how to complete it. &lt;br /&gt;&lt;br /&gt;The text descriptions are very clear and there are many illustrations, mostly of UI screenshots.&lt;br /&gt;&lt;br /&gt;I like the cookbook style the book uses -- this book is part of &lt;a href="http://authors.packtpub.com/content/cookbook-series"&gt;PACKT's cookbook series&lt;/a&gt;. &amp;nbsp;But to stay true to the cookbook format, I would have preferred a larger number of recipes with shorter discussions about the background mechanics for how any one particular recipe works. &amp;nbsp;Some of the recipes are a bit long and stretch to as many as twenty pages.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The book starts out by describing the Alfresco installation process and then discusses topics useful to end users and administrators. &amp;nbsp;In this part of the book and even in some of the later chapters, while I liked the overall style of presentation and format, it felt like there was a lot of overlap with material already covered in other places like&amp;nbsp;&lt;a href="http://in.linkedin.com/in/munwar"&gt;Munwar Shariff'&lt;/a&gt;s book&amp;nbsp;&lt;a href="http://www.amazon.com/Alfresco-Enterprise-Content-Management-Implementation/dp/1847197361"&gt;Alfresco 3 Enterprise Content Management Implementation&lt;/a&gt;&amp;nbsp;or even with what can be found in the&amp;nbsp;&lt;a href="http://www.alfresco.com/resources/documentation/"&gt;standard Alfresco documentation&lt;/a&gt;. &amp;nbsp;I would have liked to have seen more 'tips, tricks and gotchas' that go beyond just that material.&lt;br /&gt;&lt;br /&gt;Later chapters discuss topics for those who want to customize and develop in the Alfresco environment. Topics include the Content Model, the Alfresco Javascript API, FreeMarker and Workflow. The final chapter describes how to download Alfresco source and set up a build environment. &amp;nbsp;I did like the discussion in Chapter 10 on Web Scripts. &lt;br /&gt;&lt;br /&gt;Chapter 12 had me a bit puzzled. &amp;nbsp;That chapter discusses integration of Alfresco with Microsoft applications and has a lengthy discussion of &lt;a href="http://wiki.alfresco.com/wiki/Microsoft_Office"&gt;Alfresco's MS-Office 2003&lt;/a&gt; plug-in instead of discussing &lt;a href="http://wiki.alfresco.com/wiki/SharePoint_Protocol"&gt;SharePoint protocol integration&lt;/a&gt;. &amp;nbsp;I may be wrong, but I had been under the impression that the Office plugin for Alfresco has been problematic and doesn't support Office 2010.&lt;br /&gt;&lt;br /&gt;The main caveat that I have about the book though is its focus on the use of Alfresco's older Explorer client. &amp;nbsp;Alfresco Share is only mentioned on a couple of pages early on in the chapter that describes installation. &amp;nbsp;I would have liked to have seen much more about Share. &amp;nbsp;I think that almost all new deployments of Alfresco today will want to use Share as the web client, not the older Explorer client. &lt;br /&gt;&lt;br /&gt;So, in general, I thought this book was well written and I think that you'll find a lot of useful facts about Alfresco here. &amp;nbsp;I also find the cookbook format used by the book very appealing. &amp;nbsp;But you'll likely be disappointed if you're looking for a book that covers Alfresco Share.&amp;nbsp;I expect that PACKT has some books in the works on Alfresco Share coming up. &amp;nbsp;In the near term though, there is a good overview discussion on Share in the latter part of Munwar's book that I reference above.&lt;br /&gt;&lt;br /&gt;** I'd like to thank PACKT Publishing for making available to me a complementary copy of this book for review.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-3294922854660646208?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/3294922854660646208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2011/08/alfresco-3-cookbook-quick-answers-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/3294922854660646208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/3294922854660646208'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2011/08/alfresco-3-cookbook-quick-answers-to.html' title='Alfresco 3 Cookbook: Quick Answers to Common Problems by Snig Bhaumik'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-1279869539731455434</id><published>2011-04-04T16:17:00.000-07:00</published><updated>2011-04-04T16:30:11.532-07:00</updated><title type='text'>Alfresco Share Permissions/Roles -- Part II</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Creating Custom Alfresco Permissions/Roles&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In the previous blog we saw how we were able to fairly easily replace the Share &lt;b&gt;Manage Permissions&lt;/b&gt; dialog with the &lt;b&gt;Manage Permissions&lt;/b&gt; page used for the Repository button browser. &amp;nbsp;This allowed us to be able to assign at a much more granular level permissions to the folders and items that are stored within a Share site Document Library.&lt;br /&gt;&lt;br /&gt;Now consider the scenario where we would like to be able to invite users to our site, and these users should be able to see and modify only a selected set of documents within the Document Library. &amp;nbsp;We want access to the site for the majority of users to be unrestricted. &amp;nbsp;This scenario doesn't work well with the standard Share site roles of Manager, Collaborator, Contributor and Consumer.&lt;br /&gt;&lt;br /&gt;To invite a restricted user to the site, we still need to give them a role. &amp;nbsp;Even if we give this user the role of Site Consumer, they will be able to see much more content in the site than what we want them to see.&lt;br /&gt;&lt;br /&gt;What I propose here to help solve this problem is to add new custom Share site roles. &amp;nbsp;Alfresco has a wiki page &lt;a href="http://wiki.alfresco.com/wiki/Custom_Permissions_in_Share"&gt;here &lt;/a&gt;that provides a good start for what needs to be done in creating a custom Share role. &amp;nbsp;After following the instructions there, which were targeted for version 3.2r, I ran into some issues, and I noted a number of other people in the Alfresco forums also had some issues with it.&lt;br /&gt;&lt;br /&gt;What I describe here should work with a fresh Alfresco install. &amp;nbsp;&lt;i&gt;Trying to add new roles after Share sites have already been created will likely result in errors being thrown. &amp;nbsp;&lt;/i&gt;The reason why this happens is that the appropriate group authorities will not exist and Share will report that as an error. &amp;nbsp;Once these new roles are created, Share expects them to exist for all sites. &amp;nbsp;The absence of these authorities for existing sites likely is &amp;nbsp;something that can be corrected by manually creating the correct authority objects in Alfresco, but we don't attempt to do that here.&lt;br /&gt;&lt;br /&gt;Here we will create three new permissions sets/roles called External Consumer, External Contributor, and External Collaborator. The permissions for each of these roles are identical to those of the corresponding Site Consumer, Site Contributor and Site Collaborator that come standard with Share. &amp;nbsp;What will be different is how these permissions are applied to content in the Document Library.&lt;br /&gt;&lt;br /&gt;To do that, we edit the file sitePermissionDefinitions.xml and replicate the lines for SiteContributor, SiteConsumer, and SiteCollaborator permissionGroups. &amp;nbsp;This file is then placed into the following directory:&lt;br /&gt;&lt;i&gt;tomcat/shared/classes/alfresco/extension/model/&lt;/i&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: x-small; white-space: pre;"&gt;&amp;lt;?xml version='1.0' encoding='UTF-8'?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="xml:brush"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;!DOCTYPE permissions &amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;permissions&amp;gt;&lt;br /&gt;    &lt;br /&gt;    &amp;lt;!-- Namespaces used in type references --&amp;gt;&lt;br /&gt;    &lt;br /&gt;   &amp;lt;namespaces&amp;gt;&lt;br /&gt;      &amp;lt;namespace uri="http://www.alfresco.org/model/system/1.0" prefix="sys"/&amp;gt;&lt;br /&gt;      &amp;lt;namespace uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/&amp;gt;&lt;br /&gt;      &amp;lt;namespace uri="http://www.alfresco.org/model/site/1.0" prefix="st"/&amp;gt;&lt;br /&gt;   &amp;lt;/namespaces&amp;gt;&lt;br /&gt;   &lt;br /&gt;   &amp;lt;!-- ============================================ --&amp;gt;&lt;br /&gt;   &amp;lt;!-- Permissions specific to the wiki integration --&amp;gt;&lt;br /&gt;   &amp;lt;!-- ============================================ --&amp;gt;&lt;br /&gt;   &lt;br /&gt;   &amp;lt;permissionSet type="st:site" expose="selected"&amp;gt;&lt;br /&gt;   &lt;br /&gt;      &amp;lt;permissionGroup name="SiteManager" allowFullControl="true" expose="true" /&amp;gt;&lt;br /&gt;      &lt;br /&gt;      &amp;lt;permissionGroup name="SiteCollaborator" allowFullControl="false" expose="true"&amp;gt;&lt;br /&gt;         &amp;lt;includePermissionGroup permissionGroup="Collaborator" type="cm:cmobject" /&amp;gt;&lt;br /&gt;      &amp;lt;/permissionGroup&amp;gt;&lt;br /&gt;      &lt;br /&gt;      &amp;lt;permissionGroup name="SiteContributor" allowFullControl="false" expose="true"&amp;gt;&lt;br /&gt;         &amp;lt;includePermissionGroup permissionGroup="Contributor" type="cm:cmobject" /&amp;gt;&lt;br /&gt;      &amp;lt;/permissionGroup&amp;gt;&lt;br /&gt;      &lt;br /&gt;      &amp;lt;permissionGroup name="SiteConsumer" allowFullControl="false" expose="true"&amp;gt;&lt;br /&gt;         &amp;lt;includePermissionGroup permissionGroup="Consumer" type="cm:cmobject" /&amp;gt;&lt;br /&gt;      &amp;lt;/permissionGroup&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;permissionGroup name="ExternalCollaborator" allowFullControl="false" expose="true"&amp;gt;&lt;br /&gt;         &amp;lt;includePermissionGroup permissionGroup="Collaborator" type="cm:cmobject" /&amp;gt;&lt;br /&gt;      &amp;lt;/permissionGroup&amp;gt;&lt;br /&gt;      &lt;br /&gt;      &amp;lt;permissionGroup name="ExternalContributor" allowFullControl="false" expose="true"&amp;gt;&lt;br /&gt;         &amp;lt;includePermissionGroup permissionGroup="Contributor" type="cm:cmobject" /&amp;gt;&lt;br /&gt;      &amp;lt;/permissionGroup&amp;gt;&lt;br /&gt;      &lt;br /&gt;      &amp;lt;permissionGroup name="ExternalConsumer" allowFullControl="false" expose="true"&amp;gt;&lt;br /&gt;         &amp;lt;includePermissionGroup permissionGroup="Consumer" type="cm:cmobject" /&amp;gt;&lt;br /&gt;      &amp;lt;/permissionGroup&amp;gt;&lt;br /&gt;      &lt;br /&gt;   &amp;lt;/permissionSet&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/permissions&amp;gt;&lt;/span&gt;&lt;/pre&gt;We need to alert Alfresco that this override file should be loaded on startup. &amp;nbsp;To do that, we create a new file with the path&lt;br /&gt;&lt;i&gt;tomcat/shared/classes/alfresco/extension/restricted-role-context.xml&lt;/i&gt;. &lt;br /&gt;The contents of that file are as follows:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: x-small; white-space: pre;"&gt;&amp;lt;?xml version='1.0' encoding='UTF-8'?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!-- This file enables Alfresco Custom Site Roles.  It should be placed in shared/classes/extension --&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;beans&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;bean id="siteService_permissionBootstrap" parent="permissionModelBootstrap"&amp;gt;&lt;br /&gt;     &amp;lt;property name="model" value="alfresco/extension/model/sitePermissionDefinitions.xml"/&amp;gt;&lt;br /&gt;    &amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/beans&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;Finally, there are a number of files where we add string properties that can be picked up so that the new role names display correctly within the Share UI.&lt;br /&gt;First we create the file&lt;br /&gt;&lt;i&gt;tomcat/shared/classes/alfresco/web-extension/invitation-service-context.xml&lt;/i&gt;:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: x-small; white-space: pre;"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'&amp;gt;&lt;br /&gt;&amp;lt;beans&amp;gt;&lt;br /&gt;     &lt;br /&gt;    &amp;lt;bean id="invitationResourceBundles" class="org.alfresco.i18n.ResourceBundleBootstrapComponent"&amp;gt;&lt;br /&gt;     &amp;lt;property name="resourceBundles"&amp;gt;&lt;br /&gt;      &amp;lt;list&amp;gt;&lt;br /&gt;       &amp;lt;value&amp;gt;alfresco.web-extension.messages.invitation-service&amp;lt;/value&amp;gt;&lt;br /&gt;      &amp;lt;/list&amp;gt;&lt;br /&gt;     &amp;lt;/property&amp;gt;&lt;br /&gt;   &amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/beans&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;And the associated property file:&lt;br /&gt;&lt;i&gt;tomcat/shared/classes/alfresco/web-extension/messages/invitation-service.properties&lt;/i&gt;:&lt;br /&gt;&lt;pre class="brush:xml"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;invitation.invitesender.email.role.ExternalCollaborator=External Collaborator&lt;br /&gt;invitation.invitesender.email.role.ExternalContributor=External Contributor&lt;br /&gt;invitation.invitesender.email.role.ExternalConsumer=External Consumer&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;We add the following lines to the file:&lt;br /&gt;&lt;i&gt;tomcat/shared/classes/alfresco/web-extension/custom-slingshot-application-context.xml&lt;/i&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;lt;?xml version='1.0' encoding='UTF-8'?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;beans&amp;gt;&lt;br /&gt;   &amp;lt;bean id="webscripts.resources" class="org.springframework.extensions.surf.util.ResourceBundleBootstrapComponent"&amp;gt;&lt;br /&gt;      &amp;lt;property name="resourceBundles"&amp;gt;&lt;br /&gt;         &amp;lt;list&amp;gt;&lt;br /&gt;             &amp;lt;value&amp;gt;alfresco.messages.common&amp;lt;/value&amp;gt;&lt;br /&gt;             &amp;lt;value&amp;gt;alfresco.messages.slingshot&amp;lt;/value&amp;gt;&lt;br /&gt;            &amp;lt;value&amp;gt;alfresco.web-extension.messages.slingshot&amp;lt;/value&amp;gt;&lt;br /&gt;         &amp;lt;/list&amp;gt;&lt;br /&gt;      &amp;lt;/property&amp;gt;&lt;br /&gt;   &amp;lt;/bean&amp;gt;&lt;br /&gt;&amp;lt;/beans&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;And the referenced new properties are in the file:&lt;br /&gt;&lt;i&gt;tomcat/shared/classes/alfresco/web-extension/messages/slingshot.properties&lt;/i&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;## Custom Site External Reviewer Roles&lt;br /&gt;role.ExternalCollaborator=External Collaborator&lt;br /&gt;role.ExternalContributor=External Contributor&lt;br /&gt;role.ExternalConsumer=External Consumer&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;Next we copy the file&lt;br /&gt;&lt;i&gt;tomcat/webapps/share/WEB-INF/classes/alfresco/web-extension/site-webscripts/org/alfresco/components/folder-details/folder-info.get.properties&amp;nbsp;&lt;/i&gt;&lt;br /&gt;to&lt;br /&gt;&lt;i&gt;tomcat/shared/classes/alfresco/web-extension/site-webscripts/org/alfresco/components/folder-details&lt;/i&gt;&lt;br /&gt;and include these lines at the end of the file:&lt;br /&gt;&lt;pre class="brush:xml"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;folder-info.role.ExternalCollaborator=External Collaborator&lt;br /&gt;folder-info.role.ExternalConsumer=External Consumer&lt;br /&gt;folder-info.role.ExternalContributor=External Contributor&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;Similarly copy the file&lt;br /&gt;&lt;i&gt;tomcat/webapps/share/WEB-INF/classes/alfresco/web-extension/site-webscripts/org/alfresco/components/document-details/document-info.get.properties&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;to&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;tomcat/shared/classes/alfresco/web-extension/site-webscripts/org/alfresco/components/document-details/document-info.get.properties&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;and include these lines at the end:&lt;/div&gt;&lt;pre class="brush:xml"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;## Customer External Review Role&lt;br /&gt;document-info.role.ExternalCollaborator=External Collaborator&lt;br /&gt;document-info.role.ExternalConsumer=External Consumer&lt;br /&gt;document-info.role.ExternalContributor=External Contributor&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;Copy the file&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;tomcat/webapps/share/WEB-INF/classes/alfresco/web-extension/site-webscripts/org/alfresco/components/invite/invitationlist.get.properties&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;to&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;tomcat/shared/classes/alfresco/web-extension/site-webscripts/org/alfresco/components/invite/invitationlist.get.properties&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;and include these lines at the end:&lt;/div&gt;&lt;/div&gt;&lt;pre class="brush:xml" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;## External Groups and Roles for Site&lt;br /&gt;group.ExternalCollaborator=External Collaborators&lt;br /&gt;role.ExternalCollaborator=External Collaborators&lt;br /&gt;&lt;br /&gt;group.ExternalConsumer=External Consumers&lt;br /&gt;role.ExternalConsumer=External Consumers&lt;br /&gt;&lt;br /&gt;group.ExternalCotributor=External Contributors&lt;br /&gt;role.ExternalContributor=External Contributors&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;And finally, copy the file&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;tomcat/webapps/share/WEB-INF/classes/alfresco/web-extension/site-webscripts/org/alfresco/modules/documentlibrary/permissions.get.properties&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;to&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;tomcat/shared/classes/alfresco/web-extension/site-webscripts/org/alfresco/modules/documentlibrary/permissions.get.properties&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;and include these lines at the end:&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;pre class="brush:xml" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;## External Groups and Roles for Site&lt;br /&gt;group.ExternalCollaborator=External Collaborators&lt;br /&gt;role.ExternalCollaborator=External Collaborator privileges&lt;br /&gt;&lt;br /&gt;group.ExternalConsumer=External Consumers&lt;br /&gt;role.ExternalConsumer=External Consumer privileges&lt;br /&gt;&lt;br /&gt;group.ExternalCotributor=External Contributors&lt;br /&gt;role.ExternalContributor=External Contributor privileges&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;External Site Roles in Action&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Whew...&lt;br /&gt;After doing that, we stop and restart the Alfresco server. &amp;nbsp;We can then log in and create a new Share site.&lt;br /&gt;&lt;br /&gt;Immediately after creating the site, we can navigate to the root node for the site by using the Repository button in Share. &amp;nbsp;When we click on the Manage Permissions button for the new site, we can see that our new permissions sets (ExternalConsumer, ExternalCollaborator, and External Consumer) are included automatically and applied to this node.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-MOUhCpt0IX4/TZpFGesN2qI/AAAAAAAAASI/hHj4tMaWX9s/s1600/permissions.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="464" src="http://3.bp.blogspot.com/-MOUhCpt0IX4/TZpFGesN2qI/AAAAAAAAASI/hHj4tMaWX9s/s640/permissions.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;At the Document Library level, we can create a folder structure where two top level folders are to be accessible only by the standard SiteConsumer, SiteCollaborator and SiteContributor. &amp;nbsp;And a third folder is available to standard users and is also open for viewing to External Reviewers.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-54JJIFwmlyw/TZpHTn5ncXI/AAAAAAAAASQ/FAXOe6VC0q4/s1600/folderstructure.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-54JJIFwmlyw/TZpHTn5ncXI/AAAAAAAAASQ/FAXOe6VC0q4/s400/folderstructure.png" width="371" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The internal folder permissions look as follows:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-xMmGB1tQ8kA/TZpG3GfBq-I/AAAAAAAAASM/6np7nDDgtMY/s1600/internalpermissions.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-xMmGB1tQ8kA/TZpG3GfBq-I/AAAAAAAAASM/6np7nDDgtMY/s640/internalpermissions.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;With these settings, only internal reviewers will be able to see the content of this folder. &lt;br /&gt;&lt;br /&gt;In the External Reviewer folder, we set the permissions as follows:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-qE5SEyznKBE/TZpI7FOyxjI/AAAAAAAAASU/JAjdaHWoQKg/s1600/permissions2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="440" src="http://4.bp.blogspot.com/-qE5SEyznKBE/TZpI7FOyxjI/AAAAAAAAASU/JAjdaHWoQKg/s640/permissions2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;In this case, we can see that both external and standard internal reviewers are able to access this folder.&lt;br /&gt;And if we navigate one Folder down in the hierarchy of the External Reviewer Folder, we can see that the inheritance of these permissions flow down. &amp;nbsp;One folder down, we see the permissions are set in the same way:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-uVNKizqUmLw/TZpJm3NRcJI/AAAAAAAAASY/pifRfUJuFog/s1600/permissions3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="506" src="http://3.bp.blogspot.com/-uVNKizqUmLw/TZpJm3NRcJI/AAAAAAAAASY/pifRfUJuFog/s640/permissions3.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;One last note. &amp;nbsp;In order for the user/group search capability to work correctly on this form, I found that the "Add User/Group" button on this page does not find Alfresco Share groups. &amp;nbsp;By default, search is performed for groups within the ALF.DEFAULT zone which does not include the Share zone groups. &amp;nbsp;In order to find our groups, the following Javascript file was changed (Note the changes in bold made to that file):&lt;br /&gt;&lt;i&gt;tomcat/shared/classes/alfresco/web-extension/site-webscripts/org/alfresco/components/people-finder/authority-query.get.js&lt;/i&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: x-small; white-space: pre;"&gt;var getMappings = function()&lt;/span&gt;&lt;br /&gt;&lt;pre brush="xml"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;{&lt;br /&gt;   var mappings = [],&lt;br /&gt;      authorityType = args.authorityType === null ? "all" : String(args.authorityType).toLowerCase();&lt;br /&gt;   &lt;br /&gt;   if (authorityType === "all" || authorityType == "user")&lt;br /&gt;   {&lt;br /&gt;      mappings.push(&lt;br /&gt;      {&lt;br /&gt;         type: MAPPING_TYPE.API,&lt;br /&gt;         url: "/api/people?filter=" + encodeURIComponent(args.filter),&lt;br /&gt;         rootObject: "people",&lt;br /&gt;         fn: mapUser&lt;br /&gt;      });&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   if (authorityType === "all" || authorityType === "group")&lt;br /&gt;   {&lt;br /&gt;      var url = "/api/groups?shortNameFilter=" + encodeURIComponent(args.filter);&lt;br /&gt;&lt;/span&gt;&lt;b&gt;//    if (args.zone !== "all")&lt;br /&gt;// All authorities are to be found&lt;br /&gt;      if (args.zone !== "all" &amp;amp;&amp;amp; args.zone !== null)&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;      {&lt;br /&gt;         url += "&amp;amp;zone=" + encodeURIComponent(args.zone === null ? "APP.DEFAULT" : args.zone);&lt;br /&gt;      }&lt;/span&gt;&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-1279869539731455434?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/1279869539731455434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2011/04/alfresco-share-permissionsroles-part-ii.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/1279869539731455434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/1279869539731455434'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2011/04/alfresco-share-permissionsroles-part-ii.html' title='Alfresco Share Permissions/Roles -- Part II'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-MOUhCpt0IX4/TZpFGesN2qI/AAAAAAAAASI/hHj4tMaWX9s/s72-c/permissions.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-413811987353838617</id><published>2011-04-01T16:51:00.000-07:00</published><updated>2011-04-04T16:05:24.098-07:00</updated><title type='text'>Alfresco Share Permissions/Roles -- Part I</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Accessing Granular Permission Rights within Alfresco Share&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;People are sometimes surprised to find that although the Alfresco repository is architected to have very granular permissions, permissions assignments via the Share UI are based on Site roles. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Share Site Roles&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;The Share roles are as follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;table border="1" padding="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Site Consumer&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;Read&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Site Contributor&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;Read, Upload&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Site Collaborator&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;Read, Upload, Checkout, Edit&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Site Manager&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&amp;nbsp;Full Control&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Interestingly, Alfresco did not include a Site Editor role for the Share UI, despite the fact that the Editor is a standard role used within the repository and is accessible in the Alfresco Explorer client. [Note the editor can change existing document but doesn't have the Upload/Create capability.]&lt;br /&gt;&lt;br /&gt;Within the Alfresco Share client, assignment of permissions at the object level is possible using the &lt;b&gt;Manage Permissions&lt;/b&gt; action dialog: &amp;nbsp;Here we can see that permissions are assigned to the standard Share site groups. &amp;nbsp;There is no way using this dialog to specify permissions for an individual.&lt;br /&gt;&lt;br /&gt;The mix of using the same name, like 'Site Consumer' when referring to groups, privilege sets and roles also makes for some confusion on this dialog.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-R-Q0lQf1UTw/TZZPX2MlE2I/AAAAAAAAAR4/mTY7Q4VCX4c/s1600/permissionsDialog.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="363" src="http://3.bp.blogspot.com/-R-Q0lQf1UTw/TZZPX2MlE2I/AAAAAAAAAR4/mTY7Q4VCX4c/s640/permissionsDialog.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Role Assignments via the Share Repository Button&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;If permissions on objects can be enforced only by role, how can one restrict the viewing of some of the documents in the repository to only one or a few individuals? &amp;nbsp;It can be done from the Explorer client. &amp;nbsp;And, interestingly, it can also be accessed in Alfresco Share when browsing the Alfresco Repository, a feature which has been made available in Share.&lt;br /&gt;&lt;br /&gt;When browsing the repository, a different page is displayed for setting permissions than the dialog we saw above which is used when browsing within a site Document Library. &amp;nbsp;I'm not sure why Alfresco developers decided on this particular discrepancy in the design.&lt;br /&gt;&lt;br /&gt;So setting permissions at a much more granular level &amp;nbsp;is available within Share out of the box, but its location is a bit problematic because it isn't obvious that it is available.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Changing the Manage Permissions Action&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;To change the behavior of the &lt;b&gt;Manage Permissions&lt;/b&gt; action to be the same as that available from the Share Repository button is not hard. &amp;nbsp;To do that we need to modify three files. &amp;nbsp;First we make folders in the tomcat/shared folder to hold the Share files that we will change.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-h5lV6p6oeIo/TZZgGt-x2ZI/AAAAAAAAAR8/okZdeJ6UKOM/s1600/folder.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="302" src="http://3.bp.blogspot.com/-h5lV6p6oeIo/TZZgGt-x2ZI/AAAAAAAAAR8/okZdeJ6UKOM/s320/folder.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In the &lt;i&gt;document-detail&lt;/i&gt;s folder, we copy over the file &lt;i&gt;document-actions.get.config.xml&lt;/i&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In the &lt;i&gt;documentlibrary&lt;/i&gt; folder, we copy over the file &lt;i&gt;documentlist.get.config.xml&lt;/i&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In the &lt;i&gt;folder-details&lt;/i&gt; folder, we copy over the file &lt;i&gt;folder-actions.get.config.xml&lt;/i&gt;.&lt;/div&gt;&lt;br /&gt;In these files, we then edit the following line:&lt;br /&gt;&lt;br /&gt;&lt;pre brush="xml"&gt;&amp;lt;action id="onActionManagePermissions" label="actions.document.manage-permissions" permission="permissions" type="action-link"&amp;gt;&amp;lt;/action&amp;gt;&amp;gt;&lt;/pre&gt;&lt;br /&gt;This line is changed to the following:&lt;br /&gt;&lt;br /&gt;&lt;pre brush="xml"&gt;&amp;lt;action type="simple-link" id="onActionManagePermissions" permission="permissions" href="{managePermissionsUrl}" label="actions.folder.manage-permissions" /&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This same line needs to change once in each of&lt;br /&gt;d&lt;i&gt;ocument-actions.get.config.xml&lt;/i&gt; and &lt;i&gt;folder-actions.get.config.xml &lt;/i&gt;files&lt;i&gt;,&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;/i&gt;and twice in the file &lt;i&gt;documentlist.get.config.xml&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;After adding these files, we stop and start the server.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Testing out the &lt;i&gt;Manage Permissions&lt;/i&gt; Changes&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Consider the case of a manager who has uploaded a new document, a document that he wants only Susan, a user with role Site Consumer, to be able to see it. &amp;nbsp;(Although note that site managers will always be able to see all site document regardless of permission settings.)&lt;br /&gt;&lt;br /&gt;After creating the document, click on the document action&amp;nbsp;&lt;b&gt;Manage Permissions&lt;/b&gt;. &amp;nbsp;We'll see a screen that looks like the following:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-AyiQOx_zzfc/TZY5stQganI/AAAAAAAAARk/eGdJYUFPqUQ/s1600/permissions.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="427" src="http://2.bp.blogspot.com/-AyiQOx_zzfc/TZY5stQganI/AAAAAAAAARk/eGdJYUFPqUQ/s640/permissions.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;Because, via inheritance of permissions in Share, all members of the Share site currently have access to see this document. Let's change the access permissions by doing the following:&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;click on &lt;b&gt;Inherit Permissions&lt;/b&gt; to turn off that inheritance, and then&amp;nbsp;&lt;/li&gt;&lt;li&gt;click &amp;nbsp;on &lt;b&gt;Add User/Group&lt;/b&gt; and selecting Susan as the only user with permissions to see this document&lt;/li&gt;&lt;li&gt;click on the save button to save the new permission settings&lt;/li&gt;&lt;/ul&gt;After doing that, the Manage Permissions screen shows the following.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-iSrJcxQC44E/TZY69owY2eI/AAAAAAAAARo/--YQLjEe0Vo/s1600/permissions2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://3.bp.blogspot.com/-iSrJcxQC44E/TZY69owY2eI/AAAAAAAAARo/--YQLjEe0Vo/s640/permissions2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Login as Mary&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Now we can log out as the site manager and log in as as Mary, a Site Collaborator. &amp;nbsp;Mary should have no permission to see this document.&lt;br /&gt;&lt;br /&gt;Mary can navigate into the document library for the site and she does not see the document restricted to Susan.&lt;br /&gt;&lt;br /&gt;One glitch does show up here. &amp;nbsp;In the "Site Activities" Dashlet of the site, the document still shows up. &amp;nbsp;See the top document in this list, BGESWFViewer.png below:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-oEhdoCliw5s/TZY-oe6t7oI/AAAAAAAAARw/vIhetvUI5sE/s1600/dashlet1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="210" src="http://1.bp.blogspot.com/-oEhdoCliw5s/TZY-oe6t7oI/AAAAAAAAARw/vIhetvUI5sE/s400/dashlet1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;This seems to be a bug with this Alfresco dashlet to have allowed a restricted document's name to be seen by someone without permission. &amp;nbsp;But, other than that, this seems to work pretty well.&lt;/div&gt;&lt;br /&gt;And when Mary clicks on the link to the document that she sees in this dashlet, she finds that she is restricted from accessing it:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-4ARaNrJwsoM/TZY--I1vGaI/AAAAAAAAAR0/tXiPlPRevp4/s1600/restricted.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="163" src="http://2.bp.blogspot.com/-4ARaNrJwsoM/TZY--I1vGaI/AAAAAAAAAR0/tXiPlPRevp4/s320/restricted.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Login as Susan, Site Consumer&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;When logging in as Susan, in the Dashboard for the site, we see references to the document in both the "Recently Modified Document" dashlet and also the "Site Activities" dashlet. &amp;nbsp;But this is as it should be since Susan has rights to see this document.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-KPHDOoI5Cwk/TZY8NR44BjI/AAAAAAAAARs/27JYHOrT0b0/s1600/dashlet.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-KPHDOoI5Cwk/TZY8NR44BjI/AAAAAAAAARs/27JYHOrT0b0/s400/dashlet.png" width="290" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;On navigation into the Document Library, Susan is able to successfully open the document. &amp;nbsp;She can open the document details page. &amp;nbsp;If you notice when we assigned permissions to Susan above, we gave her permission as "Site Collaborator". &amp;nbsp;In that case, Susan is able to edit the metadata for it. &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-413811987353838617?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/413811987353838617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2011/04/accessing-granular-permission-rights.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/413811987353838617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/413811987353838617'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2011/04/accessing-granular-permission-rights.html' title='Alfresco Share Permissions/Roles -- Part I'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-R-Q0lQf1UTw/TZZPX2MlE2I/AAAAAAAAAR4/mTY7Q4VCX4c/s72-c/permissionsDialog.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-7365334713293946269</id><published>2011-03-02T13:23:00.000-08:00</published><updated>2011-03-02T13:34:28.884-08:00</updated><title type='text'>Updates to Alfresco Aspect Properties using CMIS  (Part 2)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This is a follow-up to my previous post about how to update aspect properties on documents using CMIS in Alfresco.  In the earlier post I provided a bit of a hack that permits aspect-defined properties to be updated just like regular document properties -- with no changes to the atom entry sent by CMIS to the server. &amp;nbsp;I should say that this hack is frowned on because Alfresco is purposely disabling support for aspects in their implementation of the CMIS API.&lt;br /&gt;&lt;br /&gt;The reason why aspects are disabled is because Alfresco wants to comply totally with the CMIS 1.0 standard, and that first version of the standard does not provide support for aspects. Actually, the possibility of adding support for aspects in CMIS has been a &lt;a href="http://forums.alfresco.com/en/viewtopic.php?f=45&amp;amp;t=23300"&gt;topic of discussion&lt;/a&gt; on the Alfresco forums for some time.&lt;br /&gt;&lt;br /&gt;The interim solution for getting at aspect properties using CMIS is to use custom Alfresco CMIS extensions. &amp;nbsp;But any code you write using an Alfresco extension of course will not work with any other CMIS repository. &amp;nbsp;Using an extension seems to defeat the purpose of the 'write once, deploy against any repository' selling point for CMIS, but the alternative is to introduce hacks that allows Alfresco CMIS to recognize aspect properties as regular properties, which isn't pretty either.&lt;br /&gt;&lt;br /&gt;A page on the &lt;a href="http://cmis.alfresco.com:8080/alfresco-opencmis-extension.html"&gt;Alfresco website&lt;/a&gt; describes how CMIS extensions can enable the handling of aspects:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;CMIS extensions are XML fragments placed in different parts of a CMIS object. The Alfresco aspect fragments are &lt;a href="http://wiki.alfresco.com/wiki/CMIS#Aspect_Support"&gt;documented on the Alfresco Wiki&lt;/a&gt;. So, theoretically, they are available to all CMIS clients out there including OpenCMIS.&lt;/i&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;i&gt;In reality, dealing with CMIS extensions isn't fun and can require quite a lot of code. OpenCMIS does all the XML parsing for you but, since it doesn't know anything about aspects, it can't provide pretty interfaces.&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;For example, when properties are updated using CMIS against an Alfresco repository, properties need to be partitioned between those properties that are related to aspects and those that aren't. &amp;nbsp;This is done by using Alfresco-specific extension tags as shown&amp;nbsp;in bold&amp;nbsp;in the atom entry below. &amp;nbsp;In this example, the first property &lt;i&gt;cmis:name&lt;/i&gt; is not included within the Alfresco tags, while aspect properties &lt;i&gt;edm:program_project&lt;/i&gt; and &lt;i&gt;cm:author&lt;/i&gt; are. &amp;nbsp;These extension tags enable the partitioning out of aspect properties.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;entry xmlns="http://www.w3.org/2005/Atom" &lt;br /&gt;       xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/" &lt;br /&gt;       xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/" &lt;br /&gt;       xmlns:alf="http://www.alfresco.org"&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;2d_house_plan.dwg&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;cmisra:object&amp;gt;&lt;br /&gt;&amp;lt;cmis:properties&amp;gt;&lt;br /&gt;&amp;lt;cmis:propertyString propertyDefinitionId="cmis:name" queryName="cmis:name"&amp;gt;&amp;lt;cmis:value&amp;gt;My CAD Drawing&amp;lt;/cmis:value&amp;gt;&amp;lt;/cmis:propertyString&amp;gt;&lt;br /&gt;&lt;b&gt;&amp;lt;alf:setAspects&amp;gt;&lt;br /&gt;&amp;lt;alf:properties&amp;gt;&lt;/b&gt;&lt;br /&gt;&amp;lt;cmis:propertyString propertyDefinitionId="edm:program_project" queryName="edm:program_project"&amp;gt;&amp;lt;cmis:value&amp;gt;Big Project&amp;lt;/cmis:value&amp;gt;&amp;lt;/cmis:propertyString&amp;gt;&lt;br /&gt;&amp;lt;cmis:propertyString propertyDefinitionId="cm:author" queryName="cm:author"&amp;gt;&amp;lt;cmis:value&amp;gt;admin&amp;lt;/cmis:value&amp;gt;&amp;lt;/cmis:propertyString&amp;gt;&lt;br /&gt;&lt;b&gt;&amp;lt;/alf:properties&amp;gt;&lt;br /&gt;&amp;lt;/alf:setAspects&amp;gt;&lt;/b&gt;&lt;br /&gt;&amp;lt;/cmis:properties&amp;gt;&lt;br /&gt;&amp;lt;/cmisra:object&amp;gt;&lt;br /&gt;&amp;lt;/entry&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-7365334713293946269?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/7365334713293946269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2011/03/updates-to-alfresco-aspect-properties.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/7365334713293946269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/7365334713293946269'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2011/03/updates-to-alfresco-aspect-properties.html' title='Updates to Alfresco Aspect Properties using CMIS  (Part 2)'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-8075740650057807748</id><published>2011-02-28T14:06:00.000-08:00</published><updated>2011-02-28T14:21:45.635-08:00</updated><title type='text'>Updating Aspect Properties in Alfresco with CMIS</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The current CMIS 1.0 specification does not address the dynamic metadata assignment like the concept of aspects used within Alfresco.  In the Alfresco 3.4d Community release, an attempt to send a CMIS request to update metadata properties on fields which have been assigned via aspects fails.&lt;br /&gt;&lt;br /&gt;For example, in developing the Formtek EDM module, we attempted to send a request to update the value for a property which was assigned to a document through the addition of an aspect.&lt;br /&gt;&lt;br /&gt;An example of the CMIS request to update metadata and the associated ATOM document are as follows:&lt;br /&gt;&lt;br /&gt;PUT /alfresco/s/cmis/s/workspace:SpacesStore/i/4073281a-5e9c-45cc-966a-4a2f32a933b8&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;entry xmlns="http://www.w3.org/2005/Atom"&lt;br /&gt;  xmlns:cmisra="http://docs.oasis-open.org/ns/cmis/restatom/200908/" &lt;br /&gt;  xmlns:cmis="http://docs.oasis-open.org/ns/cmis/core/200908/" &lt;br /&gt;  xmlns:alf="http://www.alfresco.org"&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;2d_house_plan.dwg&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;cmisra:object&amp;gt;&lt;br /&gt;      &amp;lt;cmis:properties&amp;gt;&lt;br /&gt;        &amp;lt;cmis:propertyString propertyDefinitionId="edm:program_project"&lt;br /&gt; queryName="edm:program_project"&amp;gt;&amp;lt;cmis:value&amp;gt;2d_house_plan.dwg&amp;lt;/cmis:value&amp;gt;&lt;br /&gt;        &amp;lt;/cmis:propertyString&amp;gt;&lt;br /&gt;          &amp;lt;/cmis:properties&amp;gt;&lt;br /&gt;    &amp;lt;/cmisra:object&amp;gt;&lt;br /&gt;&amp;lt;/entry&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here the property edm:program_project is a property of a custom document type associated with the document via a mandatory aspect.&lt;br /&gt;&lt;br /&gt;The request fails with the following error:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;The WebScript has responded with a status of 400 - Bad Request.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;400 Description: Request sent by the client was syntactically incorrect.&lt;br /&gt;Message: Property edm:program_project is not a known property for type D:edm:engineeringDrawing&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I was able to fix this by replacing lines 227-228 of the file &lt;alfresco&gt;/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/templates/webscripts/org/alfresco/cmis/lib/modify.lib.js&lt;br /&gt;&lt;br /&gt;&lt;/alfresco&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;// is this a valid property?&lt;br /&gt;var propDef = typeDef == null ? cmis.queryProperty(propName) : typeDef.propertyDefinitions[propName];&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;with this:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;// is this a valid property?&lt;br /&gt;var propDef;&lt;br /&gt;if(typeDef != null)&lt;br /&gt;{&lt;br /&gt;    propDef = typeDef.propertyDefinitions[propName];&lt;br /&gt;}&lt;br /&gt;    if(propDef == null)&lt;br /&gt;{&lt;br /&gt;    propDef = cmis.queryProperty(propName);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-8075740650057807748?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/8075740650057807748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2011/02/updating-aspect-properties-in-alfresco.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/8075740650057807748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/8075740650057807748'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2011/02/updating-aspect-properties-in-alfresco.html' title='Updating Aspect Properties in Alfresco with CMIS'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-2038368742575158994</id><published>2011-01-20T08:39:00.000-08:00</published><updated>2011-01-20T08:39:55.009-08:00</updated><title type='text'>Formtek to Deliver Engineering Data Management Webinar</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div lang="EN-US"&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;&lt;img src="http://online.salesnexus.com/miscref/1510311/images/Announcement%20-%20EDM%20Webinar.jpg" alt=" " width="400"  /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="font-size: small;" border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td style="width: 478.5pt; padding: 0in 0in 0in 0in;" width="638" valign="top"&gt;&lt;br /&gt;&lt;p style="text-align: center;"&gt;&lt;strong&gt;Formtek to Deliver Engineering Data Management Webinar &lt;/strong&gt;&lt;/p&gt;On February 3, 2011, Formtek's Chief Technology Officer, Dick Weisinger, will present a webinar, sponsored by Alfresco, entitled: &lt;em&gt;Engineering Data Management Module for Alfresco&lt;/em&gt;&lt;strong&gt;. &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The Formtek Engineering Data Management (EDM) Module is a pre-packaged extension to the Alfresco data repository and Share application that is designed to improve the management, accessibility and search capability of engineering data. The EDM Module provides pre-configured content models specific to the needs of engineering organizations for the management of drawings and documents within the Alfresco repository.&lt;br /&gt;&lt;br /&gt;Within Alfresco Share, the EDM Module provides packaged view, edit and advanced search forms that enable engineering metadata to be displayed, edited and efficiently searched. The EDM Module also supports popular AutoCAD® file formats, including DWG, DXF and DWF. Thumbnails and Flash (SWF) previews of AutoCAD files are automatically generated for display and use within the Share Document Library.&lt;br /&gt;&lt;br /&gt;To register for this event, visit &lt;span style="text-decoration: underline;"&gt;&lt;a href="http://www.alfresco.com/about/events/2011/02/engineering-data-management-module-for-alfresco/" target="_blank"&gt;Alfresco's registration page&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;For additional information about Formtek's Engineering Data Management offerings, download the &lt;span style="text-decoration: underline;"&gt;&lt;a href="http://www.formtek.com/downloads/solutions/Formtek_EDM_Module_For_Alfresco.pdf" target="_blank"&gt;product data sheet&lt;/a&gt;&lt;/span&gt; or contact: &lt;span style="text-decoration: underline;"&gt;&lt;a href="mailto:sales@formtek.com" target="_blank"&gt;sales@formtek.com&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;&lt;p style="text-align: center;"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt; &lt;/table&gt;&lt;p style="text-align: center;"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table style="background: silver;font-size: small;" border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td style="width: 638px; padding: 0in 0in 0in 0in;" width="638" valign="top"&gt;&lt;em&gt;About Formtek: &lt;/em&gt;For over two decades, Formtek has been providing mission-critical Enterprise Document and Content Management solutions and services to some of the most demanding industrial operations in the world. Our capabilities and experience, particularly in the areas of engineering drawing management, technical document management, and secure collaboration, have helped both small organizations as well as large global enterprises manage their most important information assets.  Formtek solutions address real, day-to-day document management, content management, and records management requirements for worldwide customers in manufacturing, aerospace, defense, telecommunication, utility, and government.&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt; &lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-2038368742575158994?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/2038368742575158994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2011/01/formtek-to-deliver-engineering-data.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/2038368742575158994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/2038368742575158994'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2011/01/formtek-to-deliver-engineering-data.html' title='Formtek to Deliver Engineering Data Management Webinar'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-4809823266805243369</id><published>2010-10-25T19:17:00.000-07:00</published><updated>2010-10-25T19:18:12.256-07:00</updated><title type='text'>JBPM Workflow in Alfresco Share 3.4a community release</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;There's some interesting improvements available for Workflow in the Alfresco 3.4a Share community release. &amp;nbsp;Alfresco community downloads are available &lt;a href="http://wiki.alfresco.com/wiki/Download_and_Install_Alfresco"&gt;here&lt;/a&gt;. &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Gavin Cornwell from Alfresco has updated the Alfresco wiki with information about 3.4&amp;nbsp;&lt;a href="http://wiki.alfresco.com/wiki/Custom_Share_Workflow_UI"&gt;Share workflow&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;Starting a Workflow in Share&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Workflows can be started by clicking on the "Start Workflow" action links from either the document details page, from the actions along the right on an item row in the list of Document Library items, or from the select items menu which applies to all items selected in the Document Library page.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_GhtkS9fvzlk/TMXCyQiyspI/AAAAAAAAAQQ/x7u1omzT5gM/s1600/zoho2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/TMXCyQiyspI/AAAAAAAAAQQ/x7u1omzT5gM/s320/zoho2.png" width="135" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td valign="top"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_GhtkS9fvzlk/TMXDOUagxOI/AAAAAAAAAQU/Iz3aVpTcuV4/s1600/zoho2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="93" src="http://1.bp.blogspot.com/_GhtkS9fvzlk/TMXDOUagxOI/AAAAAAAAAQU/Iz3aVpTcuV4/s320/zoho2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;After clicking on that, the start-workflow page comes up. &amp;nbsp;It's a little bit sparse. &amp;nbsp;The main element is a button that lets you choose which workflow to assign from a popup list of all available Workflows that can be initiated.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_GhtkS9fvzlk/TMXVEv4jGeI/AAAAAAAAAQc/9rTE_csZfuU/s1600/zoho2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/_GhtkS9fvzlk/TMXVEv4jGeI/AAAAAAAAAQc/9rTE_csZfuU/s400/zoho2.png" width="348" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;The available workflows are those that have been registered with the JBPM engine. &amp;nbsp;The &lt;a href="http://wiki.alfresco.com/wiki/WorkflowSample_Lifecycle"&gt;Alfresco wiki&lt;/a&gt; outlines the steps for adding a new custom workflow. &amp;nbsp;Once added, the new workflow automatically becomes available in this dropdown. &amp;nbsp;&lt;a href="http://keytocontent.blogspot.com/2010/02/advanced-workflow-in-alfresco-share.html"&gt;Prior to release 3.4&lt;/a&gt; in Share, the workflow items that could be assigned in Share were hardcoded. &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;In the screenshot above we can see the new "Custom Lifecycle Review" workflow added using the code from the Alfresco wiki.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin: 0 0 .75em; padding-left: 4em;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="background-color: #f3f3f3;"&gt;As an aside: The server-side Javascript file &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="background-color: #f3f3f3;"&gt;tomcat\webapps\share\WEB-INF\classes\site-webscripts\org\alfresco\components\workflow\workflow.lib.js&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="background-color: #f3f3f3;"&gt; that contains the code used on this page to query out the available workflows (getWorkflowDefinitions).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="background-color: #f3f3f3;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="background-color: #f3f3f3;"&gt;The list of scripts displayed are determined for the dropdown menu from the webscript:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;a href="http://localhost:8080/alfresco/service/api/workflow-definitions"&gt;&lt;span class="Apple-style-span" style="background-color: #f3f3f3;"&gt;http://localhost:8080/alfresco/service/api/workflow-definitions&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="background-color: #f3f3f3;"&gt;Workflows can be filtered out from this list, for example, if you don't want to see WCM workflows. &amp;nbsp;These workflows are identified by the &lt;/span&gt;&lt;hidden-workflows&gt;&lt;span class="Apple-style-span" style="background-color: #f3f3f3;"&gt; tag&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="background-color: #f3f3f3;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/hidden-workflows&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="background-color: #f3f3f3;"&gt;hidden-workflows&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span" style="background-color: #f3f3f3;"&gt;&amp;nbsp;&lt;hidden-workflows&gt;in the &lt;i&gt;tomcat\webapps\share\WEB-INF\classes\alfresco\share-config.xml&lt;/i&gt; file, and also in the &lt;i&gt;wcmquickstart-share-config.xml &lt;/i&gt;file in that same directory.&lt;/hidden-workflows&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;b&gt;Form for Starting and Assigning a Workflow&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;After you select one of the workflows in the list, the form to enter the parameters that define the workflow is displayed. &amp;nbsp;I didn't expect to see too much when I selected the new Custom Lifecycle workflow since I had not defined a form for it, but it wasn't too bad. &amp;nbsp;The layout wasn't great, but everything seemed to work OK, and assigning the workflow worked too.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_GhtkS9fvzlk/TMXaBUT7d2I/AAAAAAAAAQg/pSU5A8EchSE/s1600/zoho2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/_GhtkS9fvzlk/TMXaBUT7d2I/AAAAAAAAAQg/pSU5A8EchSE/s400/zoho2.png" width="375" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;We can customize the look of this form easily. &amp;nbsp;For example, by adding the following code to the &lt;i&gt;tomcat\shared\classes\alfresco\web-extensions\share-config-custom.xml&lt;/i&gt; file, the layout can be changed. &amp;nbsp;(The file &lt;i&gt;tomcat\shared\classes\alfresco\web-extension\share-config-custom.xml&lt;/i&gt; defined where form definitions and overrides can be placed.)&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The important thing here is to match the name of the workflow correctly in the condition for identifying the form that will be matched to it, like&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;&lt;b&gt;condition="jbpm$wfl:lifecycleapproval"&lt;/b&gt; in the example below.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;config condition="jbpm$wfl:lifecycleapproval" evaluator="string-compare"&amp;gt;&lt;br /&gt;      &amp;lt;forms&amp;gt;&lt;br /&gt;         &amp;lt;form&amp;gt;&lt;br /&gt;&amp;lt;field-visibility&amp;gt;&lt;br /&gt;               &amp;lt;show id="bpm:workflowDescription"&amp;gt;&lt;br /&gt;               &amp;lt;show id="bpm:workflowDueDate"&amp;gt;&lt;br /&gt;               &amp;lt;show id="bpm:workflowPriority"&amp;gt;&lt;br /&gt;               &amp;lt;show id="bpm:assignee"&amp;gt;&lt;br /&gt;               &amp;lt;show id="packageItems"&amp;gt;&lt;br /&gt;            &amp;lt;/show&amp;gt;&amp;lt;/show&amp;gt;&amp;lt;/show&amp;gt;&amp;lt;/show&amp;gt;&amp;lt;/show&amp;gt;&amp;lt;/field-visibility&amp;gt;&lt;br /&gt;            &amp;lt;appearance&amp;gt;&lt;br /&gt;               &amp;lt;set appearance="title" id="" label-id="workflow.set.general"&amp;gt;&lt;br /&gt;               &amp;lt;set appearance="" id="info" template="/org/alfresco/components/form/2-column-set.ftl"&amp;gt;&lt;br /&gt;               &amp;lt;set appearance="title" id="assignee" label-id="workflow.set.assignee"&amp;gt;&lt;br /&gt;               &amp;lt;set appearance="title" id="items" label-id="workflow.set.items"&amp;gt;&lt;br /&gt;               &lt;br /&gt;               &amp;lt;field id="bpm:workflowDescription" label-id="workflow.field.message"&amp;gt;&lt;br /&gt;                  &amp;lt;control template="/org/alfresco/components/form/controls/textarea.ftl"&amp;gt;&lt;br /&gt;                     &amp;lt;control-param name="style"&amp;gt;width: 95%&amp;lt;/control-param&amp;gt;&lt;br /&gt;                  &amp;lt;/control&amp;gt;&lt;br /&gt;               &amp;lt;/field&amp;gt;&lt;br /&gt;               &amp;lt;field id="bpm:workflowDueDate" label-id="workflow.field.due" set="info"&amp;gt;&lt;br /&gt;               &amp;lt;field id="bpm:workflowPriority" label-id="workflow.field.priority" set="info"&amp;gt;&lt;br /&gt;                  &amp;lt;control template="/org/alfresco/components/form/controls/workflow/priority.ftl"&amp;gt;&lt;br /&gt;               &amp;lt;/control&amp;gt;&amp;lt;/field&amp;gt;&lt;br /&gt;               &amp;lt;field id="bpm:assignee" label-id="workflow.field.reviewer" set="assignee"&amp;gt;&lt;br /&gt;               &amp;lt;field id="packageItems" set="items"&amp;gt;&lt;br /&gt;            &amp;lt;/field&amp;gt;&amp;lt;/field&amp;gt;&amp;lt;/field&amp;gt;&amp;lt;/set&amp;gt;&amp;lt;/set&amp;gt;&amp;lt;/set&amp;gt;&amp;lt;/set&amp;gt;&amp;lt;/appearance&amp;gt;&lt;br /&gt;         &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/forms&amp;gt;&lt;br /&gt;   &amp;lt;/config&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_GhtkS9fvzlk/TMX4H1XQp4I/AAAAAAAAAQk/CJ_jnMFAejI/s1600/zoho2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="290" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/TMX4H1XQp4I/AAAAAAAAAQk/CJ_jnMFAejI/s400/zoho2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;User Task and Started Workflow Lists&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;The uppermost Share navigation toolbar has been redesigned. &amp;nbsp;A "More" button is available which now includes links to user areas like "My Profile", "My Sites", and "My Content". &amp;nbsp;Links to two pages that are new to the 3.4 release are also included in this dropdown list: "My Tasks" and "Workflows I've Started". &amp;nbsp;We'll talk about these two new features in just a bit.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Also included in this dropdown list are links to administrative functions like "Application" settings, "Groups", "Users", and another new-for-3.4 capability, "Replication Jobs". &amp;nbsp;These are grouped together in the menu in a category called "Tools". &amp;nbsp;I think that I would prefer that these administrative tasks be broken out into their own menu, but this layout is still workable given the current set of features in Share.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_GhtkS9fvzlk/TMW9leTeERI/AAAAAAAAAQM/_wboEwQ-690/s1600/zoho2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="295" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/TMW9leTeERI/AAAAAAAAAQM/_wboEwQ-690/s400/zoho2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;The "My Tasks" page presents a nice summary of the outstanding tasks for the user. &amp;nbsp;Filters along the left let you quickly zoom in on a specific set of tasks if there are many in your list.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_GhtkS9fvzlk/TMYmYo3cR0I/AAAAAAAAAQo/qxyT6hHsM1o/s1600/zoho2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="220" src="http://1.bp.blogspot.com/_GhtkS9fvzlk/TMYmYo3cR0I/AAAAAAAAAQo/qxyT6hHsM1o/s400/zoho2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;A similar page exists for the user to see the workflows that they've started. &amp;nbsp;Unfortunately though, once the 'Task Complete' task is done it is removed from the list. &amp;nbsp;It would be nice to be able to review the workflows that have completed.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_GhtkS9fvzlk/TMYnAshbqfI/AAAAAAAAAQs/D2zegXaF4TY/s1600/zoho2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="275" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/TMYnAshbqfI/AAAAAAAAAQs/D2zegXaF4TY/s400/zoho2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-4809823266805243369?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/4809823266805243369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/10/jbpm-workflow-in-alfresco-share-34a.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/4809823266805243369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/4809823266805243369'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/10/jbpm-workflow-in-alfresco-share-34a.html' title='JBPM Workflow in Alfresco Share 3.4a community release'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_GhtkS9fvzlk/TMXCyQiyspI/AAAAAAAAAQQ/x7u1omzT5gM/s72-c/zoho2.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-1767580517662892980</id><published>2010-07-11T19:14:00.000-07:00</published><updated>2010-07-11T19:16:58.133-07:00</updated><title type='text'>Inbound Emails with Windows localhost</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;In &lt;a bitly="BITLY_PROCESSED" href="http://keytocontent.blogspot.com/2010/05/upload-files-to-alfresco-via-email.html"&gt;May I wrote a brief post&lt;/a&gt; that showed how you can post emails to the Alfresco server for automatic capture and upload into a specified Folder. &amp;nbsp;It's a great way to upload email content into Alfresco without having to bring up the Alfresco client interface. &amp;nbsp;This is powerful feature that I really like.&lt;br /&gt;&lt;br /&gt;A few useful scenarios come to mind with this functionality:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;You can compose a new email with information and add attachments that you send to an Alfresco folder. &amp;nbsp;You don't need to bring up the client and navigate to the correct folder/space.&lt;/li&gt;&lt;li&gt;You receive an email containing important information or attachments and you simply forward the email to the Alfresco folder.&lt;/li&gt;&lt;li&gt;You can just add the target Alfresco folder alias as a cc and capture into Alfresco important emails messages when you send them. &amp;nbsp;This is a very simple way to capture emails and requires very little overhead time for interacting with the repository.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;So I wanted to be able to easily demonstrate this functionality. &amp;nbsp;My previous post showed how you can setup inbound email on a server exposed on the internet. &amp;nbsp;In that case I had Alfresco installed on an Amazon EC2 server. &amp;nbsp;But I wanted to also be able to show this functionality working just on an isolated installation of Alfresco on my laptop.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's easy to setup and here are some steps in the variation of what I described &lt;a bitly="BITLY_PROCESSED" href="http://keytocontent.blogspot.com/2010/05/upload-files-to-alfresco-via-email.html"&gt;previously&lt;/a&gt;. &amp;nbsp;With these changes I set up Outlook Express on my Windows machine to be able to send inbound emails to the Alfresco server installed on the same machine.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 1&lt;/b&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;Enable the Alfresco email server to run on port 25.&lt;/b&gt; &amp;nbsp;See step 1 of the &lt;a bitly="BITLY_PROCESSED" href="http://keytocontent.blogspot.com/2010/05/upload-files-to-alfresco-via-email.html"&gt;previous post&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Step 2&lt;/b&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;Add localhost.com to the Windows hosts file.&lt;/b&gt;&lt;br /&gt;c:\windows\system32\drivers\etc\hosts&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class="xml:brush"&gt;&lt;/pre&gt;127.0.0.1       localhost&lt;br /&gt;127.0.0.1       localhost.com&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;Step 3 &amp;nbsp;Configure Outlook Express (or other email client)&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://4.bp.blogspot.com/_GhtkS9fvzlk/TDpyPGsXTVI/AAAAAAAAALY/nHy0Z3wFcX8/s1600/outlookexpress.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="228" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/TDpyPGsXTVI/AAAAAAAAALY/nHy0Z3wFcX8/s400/outlookexpress.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;From the Tools menu, select Accounts...&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://3.bp.blogspot.com/_GhtkS9fvzlk/TDpy21Rz4YI/AAAAAAAAALg/wXmV8vLtpYI/s1600/outlookexpress2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="205" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/TDpy21Rz4YI/AAAAAAAAALg/wXmV8vLtpYI/s400/outlookexpress2.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Select the option to add a new Mail account.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a bitly="BITLY_PROCESSED" href="http://1.bp.blogspot.com/_GhtkS9fvzlk/TDpzMM2s32I/AAAAAAAAALo/u7Dm8PyzV_0/s1600/outlook3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="331" src="http://1.bp.blogspot.com/_GhtkS9fvzlk/TDpzMM2s32I/AAAAAAAAALo/u7Dm8PyzV_0/s400/outlook3.jpg" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Add the Display Name to use and click Next.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a bitly="BITLY_PROCESSED" href="http://3.bp.blogspot.com/_GhtkS9fvzlk/TDpzjxtHxBI/AAAAAAAAALw/rRTHRW4DUbQ/s1600/outlookexpress4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/TDpzjxtHxBI/AAAAAAAAALw/rRTHRW4DUbQ/s320/outlookexpress4.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;Add the email address. &amp;nbsp;This address needs to match the email address assigned to an Alfresco user. &amp;nbsp;In this case, I plan to use this while demonstrating as user admin, so I add the email address admin@localhost.com.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a bitly="BITLY_PROCESSED" href="http://2.bp.blogspot.com/_GhtkS9fvzlk/TDp0quMLYtI/AAAAAAAAAMA/5AxFa3J--EU/s1600/outlookexpress5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="330" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/TDp0quMLYtI/AAAAAAAAAMA/5AxFa3J--EU/s400/outlookexpress5.jpg" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Then configure the Outgoing mail SMTP server to be 127.0.0.1.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a bitly="BITLY_PROCESSED" href="http://2.bp.blogspot.com/_GhtkS9fvzlk/TDp1FjePAyI/AAAAAAAAAMI/_bw0BBXktrI/s1600/outlookexpress6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="331" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/TDp1FjePAyI/AAAAAAAAAMI/_bw0BBXktrI/s400/outlookexpress6.jpg" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Finally, enter the user name and the password for this account (admin and admin).&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;And then Finish the wizard.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Step 4&lt;/b&gt; &amp;nbsp;&lt;b&gt;Setup user admin within Alfresco Share&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a bitly="BITLY_PROCESSED" href="http://1.bp.blogspot.com/_GhtkS9fvzlk/TDp1k9lhHZI/AAAAAAAAAMQ/lzx-iWHUuCg/s1600/shareuser.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_GhtkS9fvzlk/TDp1k9lhHZI/AAAAAAAAAMQ/lzx-iWHUuCg/s320/shareuser.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;The email address for user admin is set to admin@localhost.com -- which matches what was entered into the Outlook Express configuration.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://2.bp.blogspot.com/_GhtkS9fvzlk/TDp19uQTB6I/AAAAAAAAAMY/VJJupqyirjI/s1600/share2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="191" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/TDp19uQTB6I/AAAAAAAAAMY/VJJupqyirjI/s400/share2.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;And the user (admin) as added to the EMAIL_CONTRIBUTORS group.&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Step 5&lt;/b&gt; &lt;b&gt;&amp;nbsp;Set up an email alias folder name within Share.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://4.bp.blogspot.com/_GhtkS9fvzlk/TDp3HJbrojI/AAAAAAAAAMg/jmBNnJxWzoY/s1600/share3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/TDp3HJbrojI/AAAAAAAAAMg/jmBNnJxWzoY/s400/share3.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Create and/or navigate to the target email folder within share. &amp;nbsp;In this case I have a folder named MailFolder within a Share Site documentLibrary area. &amp;nbsp;Add the Aliasable (Email) aspect to the folder. &amp;nbsp;Doing that will add a new metadata field that holds the name of the folder alias.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Everything is cool up until this point. &amp;nbsp;Unfortunately the email alias name field is not exposed from the Share interface. &amp;nbsp;You'll need to bring up the Alfresco JSF explorer client and navigate to the same space that you just created (or do all of this step in the Explorer client). &amp;nbsp;There you can enter the alias name for the folder. &amp;nbsp;In this case we call it 'mailfolder'. &amp;nbsp;Note that the alias name you choose is case sensitive.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://4.bp.blogspot.com/_GhtkS9fvzlk/TDp4n76QhUI/AAAAAAAAAMo/J3pGLsb5FYQ/s1600/share4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="142" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/TDp4n76QhUI/AAAAAAAAAMo/J3pGLsb5FYQ/s400/share4.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;Step 6 &amp;nbsp; Send a Test Email&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://2.bp.blogspot.com/_GhtkS9fvzlk/TDp5cbQgPOI/AAAAAAAAAMw/Rv0sOP1MDU8/s1600/share5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="383" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/TDp5cbQgPOI/AAAAAAAAAMw/Rv0sOP1MDU8/s400/share5.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Next to test it, we send an email to mailfolder, the alias name in Alfresco that we just set up. &amp;nbsp;If we now navigate into the target Share site folder, we can see the document that was just sent.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a bitly="BITLY_PROCESSED" href="http://4.bp.blogspot.com/_GhtkS9fvzlk/TDp6NrwllWI/AAAAAAAAAM4/SPA8W6Y5zOg/s1600/share6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="167" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/TDp6NrwllWI/AAAAAAAAAM4/SPA8W6Y5zOg/s400/share6.jpg" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-1767580517662892980?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/1767580517662892980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/07/inbound-emails-with-windows-localhost.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/1767580517662892980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/1767580517662892980'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/07/inbound-emails-with-windows-localhost.html' title='Inbound Emails with Windows localhost'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GhtkS9fvzlk/TDpyPGsXTVI/AAAAAAAAALY/nHy0Z3wFcX8/s72-c/outlookexpress.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-6703253601681777921</id><published>2010-07-07T16:21:00.000-07:00</published><updated>2010-07-07T16:21:42.182-07:00</updated><title type='text'>Formtek Hosts Alfresco Lunch and Learn in July</title><content type='html'>Formtek is hosting an Alfresco Software Lunch &amp;amp; Learn session in our Concord, California (near Oakland) office at 11:30 AM on July 28 to demonstrate how businesses like yours are benefiting from the leading open source enterprise content management (ECM) software solution.&lt;br /&gt;&lt;br /&gt;Join us for lunch and sit back and relax while you hear how Alfresco is reducing ECM costs by over 95% compared to proprietary systems like Documentum, Open Text and SharePoint. Alfresco will review in depth how companies are seeing a huge return on their investment with Alfresco's document management, web content management and records management solutions.  You will also have the opportunity to view a product demonstration provided by Formtek's Chief Technologist, Dick Weisinger.&lt;br /&gt;&lt;br /&gt;This free lunch and learn is an opportunity for you to talk to the Alfresco and Formtek experts and hear first hand about the low cost, simple to use ECM software that thousands of companies are relying on, and saving money with, everyday.&lt;br /&gt;&lt;br /&gt;&lt;a bitly="BITLY_PROCESSED" href="http://www.alfresco.com/about/events/2010/07/lunch-learns-july-2010/"&gt;Click here to register for the July 28 event in Concord.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-6703253601681777921?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/6703253601681777921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/07/formtek-hosts-alfresco-lunch-and-learn.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/6703253601681777921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/6703253601681777921'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/07/formtek-hosts-alfresco-lunch-and-learn.html' title='Formtek Hosts Alfresco Lunch and Learn in July'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-7611609692455292456</id><published>2010-06-09T16:12:00.000-07:00</published><updated>2010-06-11T10:25:47.574-07:00</updated><title type='text'>Adding new Configurations in the Alfresco Share Admin Console</title><content type='html'>Alfresco Enterprise 3.3 is out now. &amp;nbsp;A release called 3.3FCS (First Customer Ship) is available for download now, and another version, and rumor that a 3.3G (community version.  G for Google docs) should become available next week. &amp;nbsp;The Alfresco product feels more stable and complete with every release. &amp;nbsp;The 3.3 version comes with a lot of new features. &amp;nbsp;One of those new features is the ability to change the theme of Alfresco directly from the Administration Console. &amp;nbsp;(You're not able to define the theme via the UI, but you can select from a set of pre-defined themes and then apply them to immediately see their effects.)&lt;br /&gt;&lt;br /&gt;The default configuration area&amp;nbsp;available&amp;nbsp;in the Admin Console are Groups, Users, and now with the 3.3 release, the Application (which currently only includes the theme).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://3.bp.blogspot.com/_GhtkS9fvzlk/TA19Qqo1xrI/AAAAAAAAAK4/veJn4hmD-XE/s1600/Alfresco33ThemeAdmin.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="132" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/TA19Qqo1xrI/AAAAAAAAAK4/veJn4hmD-XE/s400/Alfresco33ThemeAdmin.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;From the image above you can see the five out-of-the-box themes that come standard with Alfresco 3.3. &amp;nbsp;And the image below shows you the rainbow of effects that you can get by applying these themes.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a bitly="BITLY_PROCESSED" href="http://2.bp.blogspot.com/_GhtkS9fvzlk/TA2CA_g72xI/AAAAAAAAALI/WZRFTaetHJ8/s1600/AlfrescoThemes.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/TA2CA_g72xI/AAAAAAAAALI/WZRFTaetHJ8/s400/AlfrescoThemes.png" width="342" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Maybe not too exciting, but one interesting thing about the addition of Themes to the Admin Console is that it serves as a fairly simple example of how the Administration Console was designed to be extensible, so that new components&amp;nbsp;that require administration could be added to the Console.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Surprisingly not that much new code is needed for the addition of themes into the Admin Console. &amp;nbsp;Let's look at some of the files involved in the rest of this posting.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;The files that define the themes can be found at this location:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://1.bp.blogspot.com/_GhtkS9fvzlk/TA2I3M4tduI/AAAAAAAAALQ/1H02irKnyCo/s1600/ThemeFiles.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/_GhtkS9fvzlk/TA2I3M4tduI/AAAAAAAAALQ/1H02irKnyCo/s400/ThemeFiles.png" width="186" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;We're not creating a new theme in this blog, but if you plan to make a custom new one, note that you should start by cloning the files from a theme other than the default one. &amp;nbsp;The default theme has access to assets that the other themes have local copies of.&lt;/div&gt;&lt;br /&gt;&lt;b&gt;webapps\share\WEB-INF\classes\alfresco\messages\slingshot.properties&lt;/b&gt;&lt;br /&gt;This file contains the labels used in the left-side navigation area of the Administration Console. &amp;nbsp;We can see the definition for the label and description of the 'Application' Console configuration (along with similar definitions for users and groups).&lt;br /&gt;&lt;pre class="brush:xml"&gt;## Admin console tools&lt;br /&gt;tool.users.label=Users&lt;br /&gt;tool.users.description=User Management&lt;br /&gt;tool.groups.label=Groups&lt;br /&gt;tool.groups.description=Group Management&lt;br /&gt;tool.application.label=Application&lt;br /&gt;tool.application.description=Application Settings and Management&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;webapps\share\WEB-INF\classes\alfresco\site-data\themes\default.xml&lt;br /&gt;webapps\share\WEB-INF\classes\alfresco\site-data\themes\greenTheme.xml&lt;br /&gt;webapps\share\WEB-INF\classes\alfresco\site-data\themes\gdocs.xml&lt;br /&gt;webapps\share\WEB-INF\classes\alfresco\site-data\themes\yellowTheme.xml&lt;br /&gt;webapps\share\WEB-INF\classes\alfresco\site-data\themes\hcBlack.xml&lt;/b&gt;&lt;br /&gt;These files contain title and description data for each of the themes like this (from default.xml):&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;?xml version='1.0' encoding='UTF-8'?&amp;gt;&lt;br /&gt;&amp;lt;theme&amp;gt;&lt;br /&gt; &amp;lt;title&amp;gt;Default Blue Theme&amp;lt;/title&amp;gt;&lt;br /&gt; &amp;lt;title-id&amp;gt;theme.default&amp;lt;/title-id&amp;gt;&lt;br /&gt;&amp;lt;/theme&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Files to Render the Admin Console Theme Selector&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;application.get.desc.xml&lt;/b&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;webscript&amp;gt;&lt;br /&gt;  &amp;lt;shortname&amp;gt;Admin Console Application Tool&amp;lt;/shortname&amp;gt;&lt;br /&gt;  &amp;lt;description&amp;gt;Administration Console - Application Settings Tool&amp;lt;/description&amp;gt;&lt;br /&gt;  &amp;lt;url&amp;gt;/components/console/application&amp;lt;/url&amp;gt;&lt;br /&gt;  &amp;lt;family&amp;gt;admin-console&amp;lt;/family&amp;gt;&lt;br /&gt;&amp;lt;/webscript&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;application.get.head.ftl&lt;/b&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;#include "../component.head.inc"&amp;gt;&lt;br /&gt;&amp;lt;!-- Admin Console Application Tool --&amp;gt;&lt;br /&gt;&amp;lt;@link rel="stylesheet" type="text/css" href="${page.url.context}/components/console/application.css" /&amp;gt;&lt;br /&gt;&amp;lt;@script type="text/javascript" src="${page.url.context}/components/console/consoletool.js"&amp;gt;&amp;lt;/@script&amp;gt;&lt;br /&gt;&amp;lt;@script type="text/javascript" src="${page.url.context}/components/console/application.js"&amp;gt;&amp;lt;/@script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;These files are included in application.get.head.ftl:&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;webapps\share\components\console\&lt;/b&gt;&lt;b&gt;application.css&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;webapps\share\components\console\&lt;/b&gt;&lt;/span&gt;application.js&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;application.get.html.ftl&lt;/b&gt;&lt;br /&gt;This file provides the actual layout markup for the Application Configuration in the Admin Console.&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;!--[if IE]&amp;gt;&lt;br /&gt;&amp;lt;iframe id="yui-history-iframe" src="${url.context}/yui/assets/blank.html"&amp;gt;&amp;lt;/iframe&amp;gt; &lt;br /&gt;&amp;lt;![endif]--&amp;gt;&lt;br /&gt;&amp;lt;input id="yui-history-field" type="hidden" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;//&amp;lt;![CDATA[&lt;br /&gt;   new Alfresco.ConsoleApplication("${args.htmlid}").setMessages(${messages});&lt;br /&gt;//]]&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;#assign el=args.htmlid&amp;gt;&lt;br /&gt;&amp;lt;div id="${el}-body" class="application"&amp;gt;&lt;br /&gt;   &lt;br /&gt;   &amp;lt;!-- Options panel --&amp;gt;&lt;br /&gt;   &amp;lt;div id="${el}-options" class="hidden"&amp;gt;&lt;br /&gt;      &lt;br /&gt;      &amp;lt;form id="${el}-options-form" action="${url.context}/service/components/console/application" method="post"&amp;gt;&lt;br /&gt;         &lt;br /&gt;         &amp;lt;div class="title"&amp;gt;${msg("label.options")}&amp;lt;/div&amp;gt;&lt;br /&gt;         &lt;br /&gt;         &amp;lt;div class="row"&amp;gt;&lt;br /&gt;            &amp;lt;span class="label"&amp;gt;${msg("label.theme")}:&amp;lt;/span&amp;gt;&lt;br /&gt;            &amp;lt;div class="flat-button"&amp;gt;&lt;br /&gt;               &amp;lt;select id="console-options-theme-menu"&amp;gt;&lt;br /&gt;                  &amp;lt;#list themes as t&amp;gt;&lt;br /&gt;                  &amp;lt;option value="${t.id}"&amp;lt;#if t.selected&amp;gt; selected="selected"&amp;lt;/#if&amp;gt;&amp;gt;${t.title?html}&amp;lt;/option&amp;gt;&lt;br /&gt;                  &amp;lt;/#list&amp;gt;&lt;br /&gt;               &amp;lt;/select&amp;gt;&lt;br /&gt;            &amp;lt;/div&amp;gt;&lt;br /&gt;         &amp;lt;/div&amp;gt;&lt;br /&gt;         &lt;br /&gt;         &amp;lt;div class="buttons"&amp;gt;&lt;br /&gt;            &amp;lt;button id="${el}-apply-button" name="apply"&amp;gt;${msg("button.apply")}&amp;lt;/button&amp;gt;&lt;br /&gt;         &amp;lt;/div&amp;gt;&lt;br /&gt;      &lt;br /&gt;      &amp;lt;/form&amp;gt;&lt;br /&gt;   &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;application.get.js&lt;/b&gt;&lt;br /&gt;This small server side javascript file &amp;nbsp;makes use of the Surf/Share &lt;i&gt;sitedata&lt;/i&gt; root object that is described &lt;a bitly="BITLY_PROCESSED" href="http://wiki.alfresco.com/wiki/Surf_Platform_-_Freemarker_Template_and_JavaScript_API#sitedata"&gt;here&lt;/a&gt;&amp;nbsp;to find the available themes. &amp;nbsp;The code here finds the available themes and collects and stores them into the model for later display.&lt;br /&gt;&lt;pre class="brush:xml"&gt;function main()&lt;br /&gt;{&lt;br /&gt;   model.themes = [];&lt;br /&gt;   &lt;br /&gt;   // retrieve the available theme objects&lt;br /&gt;   var themes = sitedata.getObjects("theme");&lt;br /&gt;   for (var i=0, t; i&amp;lt;themes.length; i++)&lt;br /&gt;   {&lt;br /&gt;      t = themes[i];&lt;br /&gt;      model.themes.push(&lt;br /&gt;      {&lt;br /&gt;         id: t.id,&lt;br /&gt;         title: t.title,&lt;br /&gt;         // current theme ID is in the default model for a script&lt;br /&gt;         selected: (t.id == theme)&lt;br /&gt;      });&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;main();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;application.get.properties&lt;/b&gt;&lt;br /&gt;This file defines labels that appear on the Application configuration page.&lt;br /&gt;&lt;pre class="brush:xml"&gt;label.options=Options&lt;br /&gt;label.theme=Theme&lt;br /&gt;button.apply=Apply&lt;br /&gt;message.failure=Failed to apply selected options.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Files to Set the New Theme &amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Once the "Apply button is selected, the new theme (and later potentially other Application data) data is posted back to the server.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;application.post.desc.xml&lt;/b&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;webscript&amp;gt;&lt;br /&gt;  &amp;lt;shortname&amp;gt;Admin Console Application Tool POST&amp;lt;/shortname&amp;gt;&lt;br /&gt;  &amp;lt;description&amp;gt;Admin Console Application Tool POST form submission processing&amp;lt;/description&amp;gt;&lt;br /&gt;  &amp;lt;format default="json" /&amp;gt;&lt;br /&gt;  &amp;lt;url&amp;gt;/components/console/application&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;/webscript&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;application.post.json.ftl&lt;/b&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;{&lt;br /&gt;   "success": ${success?string},&lt;br /&gt;   "message": "&amp;lt;#if errormsg??&amp;gt;${errormsg}&amp;lt;/#if&amp;gt;"&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;application.post.json.js&lt;/b&gt;&lt;br /&gt;This function marks the newly selected theme and sets it.&lt;br /&gt;&lt;pre class="brush:xml"&gt;function main()&lt;br /&gt;{&lt;br /&gt;   var themeId = json.get("console-options-theme-menu");&lt;br /&gt;   context.setThemeId(new String(themeId));&lt;br /&gt;   &lt;br /&gt;   // persist across Share application if this is the admin user&lt;br /&gt;   if (user.isAdmin)&lt;br /&gt;   {&lt;br /&gt;      var sc = context.getSiteConfiguration();&lt;br /&gt;      sc.setProperty("theme", themeId);&lt;br /&gt;      sc.save();&lt;br /&gt;   }&lt;br /&gt;   &lt;br /&gt;   model.success = true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;main();&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-7611609692455292456?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/7611609692455292456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/06/adding-new-configurations-in-alfresco.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/7611609692455292456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/7611609692455292456'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/06/adding-new-configurations-in-alfresco.html' title='Adding new Configurations in the Alfresco Share Admin Console'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_GhtkS9fvzlk/TA19Qqo1xrI/AAAAAAAAAK4/veJn4hmD-XE/s72-c/Alfresco33ThemeAdmin.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-5244868336264927151</id><published>2010-05-18T16:06:00.000-07:00</published><updated>2010-05-18T16:06:07.697-07:00</updated><title type='text'>Mounting Alfresco as an IMAP Mount Point in Outlook 2007</title><content type='html'>A new feature from Alfresco version 3.2 is the ability to mount the repository within email clients that support &lt;a href="http://wiki.alfresco.com/wiki/IMAP"&gt;IMAP&lt;/a&gt;.&amp;nbsp; I thought that I'd give it a try and I found that it is pretty easy to set up.&lt;br /&gt;&lt;br /&gt;I'll show here what I did to get it to work within Outlook 2007 running on a Windows development machine.&lt;br /&gt;&lt;br /&gt;Since I'm running on a development machine, I typically use localhost as the root location for my Alfresco URLs.&amp;nbsp; When trying to set up the IMAP user account in Outlook it doesn't seem possible to be able to define the IMAP mount point source to be localhost.&amp;nbsp; The Alfresco wiki pages for IMAP also recommend against using localhost.&amp;nbsp; To get around that, I defined a dummy domain name in my local hosts file.&amp;nbsp; On a production machine, just use the domain name for that machine.&lt;br /&gt;&lt;br /&gt;In c:\Windows\system32\drivers\etc\hosts I added the following line at the top, leaving the entry for localhost in tact in the file (my apologies to the owner of this domain name).&lt;br /&gt;&lt;br /&gt;127.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xxxxxx.com&lt;br /&gt;127.0.0.1 &amp;nbsp; &amp;nbsp; &amp;nbsp; localhost &lt;br /&gt;&lt;br /&gt;In the alfresco_globals.xml file, I uncommented two lines near the bottom of the file, one to enable IMAP and the other to set the server host name we just defined.:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;#&lt;br /&gt;# IMAP&lt;br /&gt;#-------------&lt;br /&gt;imap.server.enabled=true&lt;br /&gt;#imap.server.port=143&lt;br /&gt;imap.server.host=xxxxxx.com&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;After making that change, I recycled the Alfresco server.&lt;br /&gt;&lt;br /&gt;Next I brought up my Outlook 2007 client and went through the following screens of the wizard for adding a new account.&amp;nbsp; Start at Tools -&amp;gt; Account Settings...&lt;br /&gt;&lt;br /&gt;1.&amp;nbsp; Click on the Add button of the dialog to start the process for mounting the IMAP point in Alfresco. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_GhtkS9fvzlk/S_MXy5V-E2I/AAAAAAAAAJQ/StP-isxHFS8/s1600/Outlook1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="322" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/S_MXy5V-E2I/AAAAAAAAAJQ/StP-isxHFS8/s400/Outlook1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;2.&amp;nbsp; Select the default top option radio=button for adding a POP3, IMAP,...&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_GhtkS9fvzlk/S_MX44G_ehI/AAAAAAAAAJY/xr9-2GpIVgc/s1600/Outlook002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="295" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/S_MX44G_ehI/AAAAAAAAAJY/xr9-2GpIVgc/s400/Outlook002.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;3.&amp;nbsp; Select the option on the bottom of the dialog to "Manually configure..." and then&amp;nbsp; click Next.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_GhtkS9fvzlk/S_MYCjEjRsI/AAAAAAAAAJg/ywZ4uRcGwlo/s1600/Outlook003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="293" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/S_MYCjEjRsI/AAAAAAAAAJg/ywZ4uRcGwlo/s400/Outlook003.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;4.&amp;nbsp; Select "Internet E-mail" which has the IMAP option, and click on Next.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_GhtkS9fvzlk/S_MYVy9jGiI/AAAAAAAAAJo/JoYGhABvYIU/s1600/Outlook004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="295" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/S_MYVy9jGiI/AAAAAAAAAJo/JoYGhABvYIU/s400/Outlook004.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;5.&amp;nbsp; Next fill out the credentials for being able to connect to Alfresco IMAP.&amp;nbsp; Here I use the dummy domain name that we defined in the hosts file - xxxxxx.com.&amp;nbsp; I use the login information for the Alfresco admin user.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_GhtkS9fvzlk/S_MYa6uNNmI/AAAAAAAAAJw/8DPd8rIpRP4/s1600/Outlook005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="293" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/S_MYa6uNNmI/AAAAAAAAAJw/8DPd8rIpRP4/s400/Outlook005.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;6.&amp;nbsp; Click Next and we are finished.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_GhtkS9fvzlk/S_MYjqdzuDI/AAAAAAAAAJ4/6iyILPFpPyU/s1600/Outlook006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="296" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/S_MYjqdzuDI/AAAAAAAAAJ4/6iyILPFpPyU/s400/Outlook006.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;7.&amp;nbsp; After a few seconds pause, on the left navigation panel, you should see the Alfresco IMAP Point successfully mounted.&amp;nbsp; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_GhtkS9fvzlk/S_MYpaXfwNI/AAAAAAAAAKA/oxAuKS7oIk4/s1600/Outlook008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="363" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/S_MYpaXfwNI/AAAAAAAAAKA/oxAuKS7oIk4/s400/Outlook008.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;8. Click through on the Alfresco IMAP folder and you'll see folders of the Alfresco repository.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_GhtkS9fvzlk/S_MY14x_96I/AAAAAAAAAKQ/fw4BB0RUrtY/s1600/Outlook009.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/S_MY14x_96I/AAAAAAAAAKQ/fw4BB0RUrtY/s320/Outlook009.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Not all folders have yet been enabled for display in the IMAP Alfresco folder hierarchy.&amp;nbsp; I'm currently working with my Records Management site within Alfresco, so I log into Alfresco share, and from the Share main dashboard, I'm able to mark the Records Management folder as an IMAP favorite.&amp;nbsp; After doing that, the records management site folders also are available from within Outlook.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_GhtkS9fvzlk/S_Mbzcgx6LI/AAAAAAAAAKY/rMUc6_KMY0U/s1600/Outlook010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="146" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/S_Mbzcgx6LI/AAAAAAAAAKY/rMUc6_KMY0U/s400/Outlook010.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In Outlook I can see the following in the left folder navigation area:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_GhtkS9fvzlk/S_McPMLNnLI/AAAAAAAAAKg/NR85YGQqZYY/s1600/Outlook011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/S_McPMLNnLI/AAAAAAAAAKg/NR85YGQqZYY/s400/Outlook011.png" width="326" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;From within Outlook I can now drag my emails from my Inbox into the Alfresco IMAP storage.&amp;nbsp; For example, I drag an email into the US20040249606 Folder of the Patents Category.&amp;nbsp; From Share Records Management, I see the following:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_GhtkS9fvzlk/S_MdEq4EcbI/AAAAAAAAAKo/A0pk7Wp54wE/s1600/Outlook012.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="177" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/S_MdEq4EcbI/AAAAAAAAAKo/A0pk7Wp54wE/s640/Outlook012.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;There is a new entry:&amp;nbsp; Message_755.eml.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-5244868336264927151?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/5244868336264927151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/05/mounting-alfresco-as-imap-mount-point.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/5244868336264927151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/5244868336264927151'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/05/mounting-alfresco-as-imap-mount-point.html' title='Mounting Alfresco as an IMAP Mount Point in Outlook 2007'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_GhtkS9fvzlk/S_MXy5V-E2I/AAAAAAAAAJQ/StP-isxHFS8/s72-c/Outlook1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-4198612263476815252</id><published>2010-05-05T20:45:00.000-07:00</published><updated>2010-05-05T20:48:41.358-07:00</updated><title type='text'>Upload Files to Alfresco via Email -- Inbound Emails</title><content type='html'>"Data Ingestion" &amp;nbsp;-- that's the process of getting files and data into your content management system, and Alfresco makes it easy. &amp;nbsp;My favorite example is being able to drag-and-drop to a mounted Alfresco CIFS drive. &amp;nbsp;Alfresco 3.2R also introduces drag-and-drop within IMAP-compatible email clients like Outlook, which is pretty slick.&lt;br /&gt;&lt;br /&gt;But there's another option that you may not know about that has been part of standard Alfresco for a while and it's something that you may find to be very handy. &amp;nbsp;That's the uploading of emails sent to an Alfresco email address. &amp;nbsp;This feature lets users send emails with attachments to Alfresco for archival. &amp;nbsp;Only emails coming from designated users whose originating email address matches the email address that Alfresco knows from the user profile are accepted. &amp;nbsp;This is a great option for people out in the field to be able to simply email in data and files that they need to be stored in the Alfresco repository.&lt;br /&gt;&lt;br /&gt;You still need to use the Alfresco explorer JSF client to set it up, but once you've got it setup, you can file data into the Records Management module, an Alfresco Share site document library, or anywhere in the repository.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 1 -- Setup and Start the Alfresco Email Server&lt;/b&gt;&lt;br /&gt;Edit the file Alfresco/tomcat/shared/classes/alfresco-global.properties. &amp;nbsp;Change the section in the file called "Alfresco Email Server" as show below. Basically, I've uncommented the email.server.* and email.inbound.* properties. &amp;nbsp;For the variable email.server.domain, I entered the name of the server where Alfresco is running. &amp;nbsp;In my case, I am testing on an Amazon EC2 instance, so I've entered the Amazon Public DNS for my instance.&lt;br /&gt;&lt;br /&gt;In this case, I've set the email.server.port value to 25. &amp;nbsp;You might want to verify that there is no email server already running on the Alfresco server machine and listening to port 25. &lt;br /&gt;&lt;br /&gt;On Linux to check this, I run the following command:&lt;br /&gt;netstat -nap --inet | grep 25&lt;br /&gt;&lt;br /&gt;On Windows, you could just run netstat.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After making those changes, I stop and restart the Alfresco server.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;# Alfresco Email Service and Email Server&lt;br /&gt;#-------------&lt;br /&gt;&lt;br /&gt;# Enable/Disable the inbound email service.  The service could be used by processes other than&lt;br /&gt;# the Email Server (e.g. direct RMI access) so this flag is independent of the Email Service.&lt;br /&gt;#-------------&lt;br /&gt;email.inbound.enabled=true&lt;br /&gt;&lt;br /&gt;# Email Server properties &lt;br /&gt;#-------------&lt;br /&gt;email.server.enabled=true&lt;br /&gt;email.server.port=25&lt;br /&gt;email.server.domain=ec2-184-73-58-194.compute-1.amazonaws.com&lt;br /&gt;email.inbound.unknownUser=anonymous&lt;br /&gt;&lt;br /&gt;# A comma separated list of email REGEX patterns of allowed senders.&lt;br /&gt;# If there are any values in the list then all sender email addresses&lt;br /&gt;# must match.  For example:&lt;br /&gt;#   .*\@alfresco\.com, .*\@alfresco\.org&lt;br /&gt;# Allow anyone:&lt;br /&gt;#-------------&lt;br /&gt;email.server.allowed.senders=.*&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;Step 2 -- Set Alfresco User Emails&lt;/b&gt;&lt;br /&gt;Enable Alfresco users to be able to submit email uploads by starting up the Alfresco explorer client and going into the Admin area. &amp;nbsp;For each user that will be enabled for email submit verify that the email address entered in their Alfresco profiles match the address that they will be using when submitting emails.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 3 -- Add Users to the EMAIL_CONTRIBUTORS group&lt;/b&gt;&lt;br /&gt;While still in the Alfresco administration area on the Alfresco explorer client, go into group administration. &amp;nbsp;Make sure that all users that are to be enabled to submit email uploads to Alfresco are part of the Alfresco group EMAIL_CONTRIBUTORS.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 3 -- Setup email aliases for Alfresco folders (spaces)&lt;/b&gt;&lt;br /&gt;Identify which folders in Alfresco that you'd like users to be able to submit to. &amp;nbsp;To do that, navigate to each of the target folders in the repository.&lt;br /&gt;&lt;br /&gt;For example, here is a new folder in my user home area that is called "Email Inbox"&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://4.bp.blogspot.com/_GhtkS9fvzlk/S-Iy1J4_KJI/AAAAAAAAAIo/-U6KsicjoD8/s1600/Inbox1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="157" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/S-Iy1J4_KJI/AAAAAAAAAIo/-U6KsicjoD8/s400/Inbox1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;On examination of the properties for this folder, you can see an entry called "Email ID". &amp;nbsp;This is really all you need for being able to send emails. &amp;nbsp;I can do an email upload submit by sending my email to this email address, like: &amp;nbsp;545@&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;ec2-184-73-58-194.compute-1.amazonaws.com.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://2.bp.blogspot.com/_GhtkS9fvzlk/S-I0DmBTaAI/AAAAAAAAAIw/MuRRh3iYFPw/s1600/Inbox2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/S-I0DmBTaAI/AAAAAAAAAIw/MuRRh3iYFPw/s400/Inbox2.png" width="318" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;But it is somewhat nicer to be able to send to an email address that is easier to remember than just a number.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;To create an alias for the Email ID numeric, you need to first add an aspect to the folder. &lt;/div&gt;&lt;div style="text-align: left;"&gt;Run Action -&amp;gt; Add Aspect to Item.  Select the "Email alias" aspect.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Once the aspect is added, you'll see something like this.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://1.bp.blogspot.com/_GhtkS9fvzlk/S-I1Mde_jCI/AAAAAAAAAI4/O4d3BybIqVM/s1600/Inbox3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_GhtkS9fvzlk/S-I1Mde_jCI/AAAAAAAAAI4/O4d3BybIqVM/s320/Inbox3.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The property "Email Alias" is now available.  By selecting edit for the properties, you can define an alias for the submit email name.  For example, I can use 'inbox'.  Note that the name you select is case sensitive.  After doing that, I can submit emails to populate the folder associated with the alias name, like: inbox&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;@&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;ec2-184-73-58-194.compute-1.amazonaws.com.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Step 4 -- Start sending Emails&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Send an email to the Alfresco email server:&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;inbox&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;@&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;ec2-184-73-58-194.compute-1.amazonaws.com, using the name appropriate for your system.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;In this case I sent an email and an attachment called 'AlfrescoRMintro.txt'.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://2.bp.blogspot.com/_GhtkS9fvzlk/S-I35wF2e4I/AAAAAAAAAJA/702zLeOdrxk/s1600/Inbox4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/S-I35wF2e4I/AAAAAAAAAJA/702zLeOdrxk/s400/Inbox4.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Then check the folder. &amp;nbsp;Both the email body (with name based on the email subject) and attachment have been uploaded to the folder.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Yes, that's really great. &amp;nbsp;If you look at the property page for this email, you'll see something like this:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://4.bp.blogspot.com/_GhtkS9fvzlk/S-I5GSsOcfI/AAAAAAAAAJI/htyFicr8UW4/s1600/Inbox5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/S-I5GSsOcfI/AAAAAAAAAJI/htyFicr8UW4/s400/Inbox5.png" width="387" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;There's only one thing that makes it not totally perfect. &amp;nbsp;On the property page for the email body, you can see the Attachments property with a link to the attachment document. &amp;nbsp;That's great, but it isn't a live link. &amp;nbsp;You need to manually go back to the folder level and find the attachment document. &amp;nbsp;It would nice to just be able to click right there to see the attachment.&lt;/div&gt;&lt;br /&gt;Overall though this can be a very useful feature, and one not to forget about.&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-4198612263476815252?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/4198612263476815252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/05/upload-files-to-alfresco-via-email.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/4198612263476815252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/4198612263476815252'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/05/upload-files-to-alfresco-via-email.html' title='Upload Files to Alfresco via Email -- Inbound Emails'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GhtkS9fvzlk/S-Iy1J4_KJI/AAAAAAAAAIo/-U6KsicjoD8/s72-c/Inbox1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-6180831176523663582</id><published>2010-05-01T14:44:00.000-07:00</published><updated>2010-05-01T14:44:49.727-07:00</updated><title type='text'>Alfresco Records Management Free Trial</title><content type='html'>With the 3.2r release of Alfresco Share, the Alfresco Records Management module is now available in the Enterprise edition.&lt;br /&gt;&lt;br /&gt;Alfresco has recently started a free trial program to get started using Alfresco Share and Records Management. &amp;nbsp;&lt;a bitly="BITLY_PROCESSED" href="http://www.alfresco.com/products/trials/cloud/records-management/index.jsp?ct_id=533a2273"&gt;Click here&lt;/a&gt; to sign up for it.&lt;br /&gt;&lt;br /&gt;Paul Hampton, Product Manager at Alfresco, has recorded a number of Share Records Management videos.  More of them are available on this &lt;a bitly="BITLY_PROCESSED" href="http://blogs.alfresco.com/wp/democast/2010/04/23/demo-alfresco-records-management-running-in-the-cloud/"&gt;page&lt;/a&gt;.  I've included one of the videos below for your viewing interest.&lt;br /&gt;&lt;h2&gt;&lt;strong&gt;Introduction to Fileplan&lt;/strong&gt;&lt;/h2&gt;This video reviews the Fileplan within the Alfresco Records Management solution. It shows how multiple users will be presented with different views of the Fileplan based on their security setting and role.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/_qR9ZAUovog?rel=0&amp;#038;fs=1" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed src="http://www.youtube.com/v/_qR9ZAUovog?rel=0&amp;#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-6180831176523663582?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/6180831176523663582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/05/alfresco-records-management-free-trial.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/6180831176523663582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/6180831176523663582'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/05/alfresco-records-management-free-trial.html' title='Alfresco Records Management Free Trial'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-6136828130223113529</id><published>2010-04-15T14:07:00.000-07:00</published><updated>2010-04-15T14:32:01.531-07:00</updated><title type='text'>Preview: Alfresco Share Rules</title><content type='html'>Here's a followup from my previous post that previewed Data Lists in Alfresco Share.&lt;br /&gt;&lt;br /&gt;This time I give a demonstration of the rules capability in the Alfresco Share 3.3 Community release.  Rules are not new to Alfresco.  They've been in the Explorer client for some time.  But being able to specify them from Share is new.  And the UI for managing them is a nice improvement over the JSF-based screens of Explorer.&lt;br /&gt;&lt;br /&gt;While there's a 3.3 release downloadable now, as of this writing, bug fixes for rules in Share seems to be quite active.  What I show here was made with a build from the latest source code in the SVN Head area that I made this morning.&lt;br /&gt;&lt;br /&gt;&lt;div id="media"&gt;&lt;object id="csSWF" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="237" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0"&gt;                 &lt;param name="src" value="http://www.formtek.com/alfresco/rules/Alfresco33_RulesManagement_Lorez/Alfresco33_RulesManagement_Lorez_controller.swf"/&gt;&lt;param name="bgcolor" value="#1a1a1a"/&gt;&lt;param name="quality" value="best"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="scale" value="showall"/&gt;&lt;param name="flashVars" value="autostart=false"/&gt;&lt;embed name="csSWF" src="http://www.formtek.com/alfresco/rules/Alfresco33_RulesManagement_Lorez/Alfresco33_RulesManagement_Lorez_controller.swf" width="400" height="237" bgcolor="#1a1a1a" quality="best" allowScriptAccess="always" allowFullScreen="true" scale="showall" flashVars="autostart=false&amp;thumb=FirstFrame.png&amp;thumbscale=45&amp;color=0x000000,0x000000" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"&gt;&lt;/embed&gt;             &lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;center&gt;&lt;br /&gt;Transcript for the video can be downloaded &lt;a href="http://www.formtek.com/alfresco/rules/AlfrescoShareRulesTranscript.pdf" target="transcript"&gt;here&lt;/a&gt;.&lt;br /&gt;A high resolution version of this demonstration can be seen &lt;a href="http://www.formtek.com/alfresco/rules/Alfresco33_RulesManagement_Hirez/Alfresco33_RulesManagement_Hirez.html" target="hirez"&gt;here&lt;/a&gt;.&lt;br /&gt;The Alfresco 3.3 Community release can be downloaded &lt;a href="http://wiki.alfresco.com/wiki/Download_Community_Edition" target="download"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;The Alfresco Share 3.3 version is certainly shaping up.  And the new rules capability in it really add to the usability of the product.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-6136828130223113529?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/6136828130223113529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/04/preview-alfresco-share-rules.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/6136828130223113529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/6136828130223113529'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/04/preview-alfresco-share-rules.html' title='Preview: Alfresco Share Rules'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-4721798328639229980</id><published>2010-04-13T21:29:00.000-07:00</published><updated>2010-04-13T21:51:56.079-07:00</updated><title type='text'>Preview:  Alfresco Share Data Lists</title><content type='html'>If you don't have the time to download and setup the newly released Alfresco Share 3.3 Community version, here's a video that previews one of the new features in that release: Data Lists.&lt;br /&gt;&lt;br /&gt;&lt;div id="media"&gt;&lt;object id="csSWF" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="237" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0"&gt;                 &lt;param name="src" value="http://www.formtek.com/alfresco/datalists/lorez/Lorez_controller.swf"/&gt;&lt;param name="bgcolor" value="#1a1a1a"/&gt;&lt;param name="quality" value="best"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="scale" value="showall"/&gt;&lt;param name="flashVars" value="autostart=false"/&gt;&lt;embed name="csSWF" src="http://www.formtek.com/alfresco/datalists/lorez/Lorez_controller.swf" width="400" height="237" bgcolor="#1a1a1a" quality="best" allowScriptAccess="always" allowFullScreen="true" scale="showall" flashVars="autostart=false&amp;thumb=FirstFrame.png&amp;thumbscale=45&amp;color=0x000000,0x000000" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"&gt;&lt;/embed&gt;             &lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;center&gt;&lt;br /&gt;Transcript for the video can be downloaded &lt;a href="http://www.formtek.com/alfresco/datalists/AlfrescoShareDataListTranscript.pdf"&gt;here&lt;/a&gt;.&lt;br /&gt;A high resolution version of this demonstration can be seen &lt;a href="http://www.formtek.com/alfresco/datalists/hirez/Alfresco33_DataList_Hirez.html" target="hirez"&gt;here&lt;/a&gt;.&lt;br /&gt;The Alfresco 3.3 Community release can be downloaded &lt;a href="http://wiki.alfresco.com/wiki/Download_Community_Edition" target="download"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;The video doesn't get into how the lists are defined using the Alfresco Content model.  It's possible to create new Data List types or to modify the columns of the existing To Do List.&lt;br /&gt;&lt;br /&gt;The To-Do List example that ships with Alfresco Share is shown in the video and the content model definition can be found in a file in the Alfresco war under models called datalistModel.xml.&lt;br /&gt;&lt;br /&gt;&lt;pre  class="brush:xml"&gt;&amp;lt;type name=&amp;quot;dl:todoList&amp;quot;&amp;gt;&lt;br /&gt;         &amp;lt;title&amp;gt;To Do List&amp;lt;/title&amp;gt;&lt;br /&gt;         &amp;lt;parent&amp;gt;dl:dataListItem&amp;lt;/parent&amp;gt;&lt;br /&gt;         &amp;lt;properties&amp;gt;&lt;br /&gt;            &amp;lt;property name=&amp;quot;dl:todoTitle&amp;quot;&amp;gt;&lt;br /&gt;               &amp;lt;title&amp;gt;Title&amp;lt;/title&amp;gt;&lt;br /&gt;               &amp;lt;type&amp;gt;d:text&amp;lt;/type&amp;gt;&lt;br /&gt;               &amp;lt;mandatory&amp;gt;true&amp;lt;/mandatory&amp;gt;&lt;br /&gt;            &amp;lt;/property&amp;gt;&lt;br /&gt;            &amp;lt;property name=&amp;quot;dl:todoDueDate&amp;quot;&amp;gt;&lt;br /&gt;               &amp;lt;title&amp;gt;Due Date&amp;lt;/title&amp;gt;&lt;br /&gt;               &amp;lt;type&amp;gt;d:datetime&amp;lt;/type&amp;gt;&lt;br /&gt;               &amp;lt;mandatory&amp;gt;false&amp;lt;/mandatory&amp;gt;&lt;br /&gt;            &amp;lt;/property&amp;gt;&lt;br /&gt;            &amp;lt;property name=&amp;quot;dl:todoPriority&amp;quot;&amp;gt;&lt;br /&gt;               &amp;lt;title&amp;gt;Priority&amp;lt;/title&amp;gt;&lt;br /&gt;               &amp;lt;type&amp;gt;d:int&amp;lt;/type&amp;gt;&lt;br /&gt;               &amp;lt;mandatory&amp;gt;false&amp;lt;/mandatory&amp;gt;&lt;br /&gt;            &amp;lt;/property&amp;gt;&lt;br /&gt;            &amp;lt;property name=&amp;quot;dl:todoNotes&amp;quot;&amp;gt;&lt;br /&gt;               &amp;lt;title&amp;gt;Notes&amp;lt;/title&amp;gt;&lt;br /&gt;               &amp;lt;type&amp;gt;d:text&amp;lt;/type&amp;gt;&lt;br /&gt;               &amp;lt;mandatory&amp;gt;false&amp;lt;/mandatory&amp;gt;&lt;br /&gt;            &amp;lt;/property&amp;gt;&lt;br /&gt;         &amp;lt;/properties&amp;gt;&lt;br /&gt;         &amp;lt;associations&amp;gt;&lt;br /&gt;            &amp;lt;association name=&amp;quot;dl:assignee&amp;quot;&amp;gt;&lt;br /&gt;               &amp;lt;title&amp;gt;Assignee&amp;lt;/title&amp;gt;&lt;br /&gt;               &amp;lt;source&amp;gt;&lt;br /&gt;                  &amp;lt;mandatory&amp;gt;false&amp;lt;/mandatory&amp;gt;&lt;br /&gt;                  &amp;lt;many&amp;gt;true&amp;lt;/many&amp;gt;&lt;br /&gt;               &amp;lt;/source&amp;gt;&lt;br /&gt;               &amp;lt;target&amp;gt;&lt;br /&gt;                  &amp;lt;class&amp;gt;cm:person&amp;lt;/class&amp;gt;&lt;br /&gt;                  &amp;lt;mandatory&amp;gt;false&amp;lt;/mandatory&amp;gt;&lt;br /&gt;                  &amp;lt;many&amp;gt;false&amp;lt;/many&amp;gt;&lt;br /&gt;               &amp;lt;/target&amp;gt;&lt;br /&gt;            &amp;lt;/association&amp;gt;&lt;br /&gt;            &amp;lt;association name=&amp;quot;dl:attachments&amp;quot;&amp;gt;&lt;br /&gt;               &amp;lt;title&amp;gt;Attachments&amp;lt;/title&amp;gt;&lt;br /&gt;               &amp;lt;source&amp;gt;&lt;br /&gt;                  &amp;lt;mandatory&amp;gt;false&amp;lt;/mandatory&amp;gt;&lt;br /&gt;                  &amp;lt;many&amp;gt;true&amp;lt;/many&amp;gt;&lt;br /&gt;               &amp;lt;/source&amp;gt;&lt;br /&gt;               &amp;lt;target&amp;gt;&lt;br /&gt;                  &amp;lt;class&amp;gt;cm:cmobject&amp;lt;/class&amp;gt;&lt;br /&gt;                  &amp;lt;mandatory&amp;gt;false&amp;lt;/mandatory&amp;gt;&lt;br /&gt;                  &amp;lt;many&amp;gt;true&amp;lt;/many&amp;gt;&lt;br /&gt;               &amp;lt;/target&amp;gt;&lt;br /&gt;            &amp;lt;/association&amp;gt;&lt;br /&gt;         &amp;lt;/associations&amp;gt;&lt;br /&gt;      &amp;lt;/type&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The to-do list form is defined in the file share-form-config.xml:&lt;br /&gt;&lt;pre  class="brush:xml"&gt;&amp;lt;!-- dl:todoList type --&amp;gt;&lt;br /&gt;   &amp;lt;config evaluator=&amp;quot;model-type&amp;quot; condition=&amp;quot;dl:todoList&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;forms&amp;gt;&lt;br /&gt;         &amp;lt;!-- Create item form --&amp;gt;&lt;br /&gt;         &amp;lt;form&amp;gt;&lt;br /&gt;            &amp;lt;field-visibility&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:todoTitle&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:todoDueDate&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:todoPriority&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:todoNotes&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:assignee&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:attachments&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;/field-visibility&amp;gt;&lt;br /&gt;            &amp;lt;create-form template=&amp;quot;../data-lists/forms/row-new.ftl&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;appearance&amp;gt;&lt;br /&gt;               &amp;lt;field id=&amp;quot;dl:todoNotes&amp;quot;&amp;gt;&lt;br /&gt;                  &amp;lt;control template=&amp;quot;/org/alfresco/components/form/controls/textarea.ftl&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;/field&amp;gt;&lt;br /&gt;            &amp;lt;/appearance&amp;gt;&lt;br /&gt;         &amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;!-- Data Grid view --&amp;gt;&lt;br /&gt;         &amp;lt;form id=&amp;quot;datagrid&amp;quot;&amp;gt;&lt;br /&gt;            &amp;lt;field-visibility&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:todoTitle&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:todoDueDate&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:todoPriority&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:assignee&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:attachments&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;/field-visibility&amp;gt;&lt;br /&gt;         &amp;lt;/form&amp;gt;&lt;br /&gt;      &amp;lt;/forms&amp;gt;&lt;br /&gt;   &amp;lt;/config&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;!-- dl_todoList type (existing nodes) --&amp;gt;&lt;br /&gt;   &amp;lt;config evaluator=&amp;quot;node-type&amp;quot; condition=&amp;quot;dl:todoList&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;forms&amp;gt;&lt;br /&gt;         &amp;lt;!-- Data List pop-up edit form --&amp;gt;&lt;br /&gt;         &amp;lt;form&amp;gt;&lt;br /&gt;            &amp;lt;field-visibility&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:todoTitle&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:todoDueDate&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:todoPriority&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:todoNotes&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:assignee&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;show id=&amp;quot;dl:attachments&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;/field-visibility&amp;gt;&lt;br /&gt;            &amp;lt;edit-form template=&amp;quot;../data-lists/forms/row-edit.ftl&amp;quot; /&amp;gt;&lt;br /&gt;            &amp;lt;appearance&amp;gt;&lt;br /&gt;               &amp;lt;field id=&amp;quot;dl:todoNotes&amp;quot;&amp;gt;&lt;br /&gt;                  &amp;lt;control template=&amp;quot;/org/alfresco/components/form/controls/textarea.ftl&amp;quot; /&amp;gt;&lt;br /&gt;               &amp;lt;/field&amp;gt;&lt;br /&gt;            &amp;lt;/appearance&amp;gt;&lt;br /&gt;         &amp;lt;/form&amp;gt;&lt;br /&gt;      &amp;lt;/forms&amp;gt;&lt;br /&gt;   &amp;lt;/config&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-4721798328639229980?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/4721798328639229980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/04/preview-alfresco-share-data-lists.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/4721798328639229980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/4721798328639229980'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/04/preview-alfresco-share-data-lists.html' title='Preview:  Alfresco Share Data Lists'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-7153962180272016971</id><published>2010-04-06T14:02:00.000-07:00</published><updated>2010-04-06T14:09:24.751-07:00</updated><title type='text'>Alfresco Records Management Demonstration</title><content type='html'>April has traditionally been celebrated as &lt;a href="http://www.allbusiness.com/professional-scientific/management-consulting-services/376487-1.html"&gt;Records and Information Management Month&lt;/a&gt; (RIMM).  So no better time than to give a look at Alfresco's recently released Records Management module.  Alfresco Records Management is certified for the DoD 5015.2 Standard.  Below is a video with an overview of the RM module as used in Alfresco Share.&lt;br /&gt;&lt;br /&gt;&lt;div id="media"&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0" height="379" id="csSWF" width="640"&gt;                 &lt;param name="src" value="http://www.formtek.com/rm/lorez/RMDemo_LoRez_controller.swf"/&gt;&lt;param name="bgcolor" value="#1a1a1a"/&gt;&lt;param name="quality" value="best"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="scale" value="showall"/&gt;&lt;param name="flashVars" value="autostart=false"/&gt;&lt;embed name="csSWF" src="http://www.formtek.com/rm/lorez/RMDemo_LoRez_controller.swf" width="400" height="237" bgcolor="#1a1a1a" quality="best" allowScriptAccess="always" allowFullScreen="true" scale="showall" flashVars="autostart=false&amp;thumb=FirstFrame.png&amp;thumbscale=45&amp;color=0x000000,0x000000" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"&gt;&lt;/embed&gt;             &lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;Note: A &lt;b&gt;high-resolution&lt;/b&gt; (1504x738) version of this video can be viewed &lt;a href="http://www.formtek.com/rm/hirez/RMDemo_HiRez.html" target="hirez"&gt;here&lt;/a&gt;.&lt;br /&gt;A slightly bigger version of the video (640x379) can be seen &lt;a href="http://formtek.com/rm/lorez/formtek_alfresco_records_management_demo.html"&gt;here&lt;/a&gt;.&lt;br /&gt;A complete transcript of this video can be downloaded &lt;a href="http://www.formtek.com/rm/Formtek_AlfrescoRecordsManagementIntroTranscript.pdf" target="transcript"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://www.formtek.com/"  style="text_decoration:none"&gt;&lt;img border="0" src="http://www.formtek.com/rm/ftksmalllogo.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://www.alfresco.com/" style="text_decoration:none"&gt;&lt;img border="0" src="http://www.formtek.com/rm/alfrescosmalllogo.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h2&gt;More Information&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;A 20-page White Paper describing &lt;b&gt;Records Management Best Practices&lt;/b&gt; can be downloaded &lt;a href="http://www.blogger.com/RecordsManagementBestPractices.pdf" target="whitepaper"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;The Alfresco Share Records Management Data Sheet can be downloaded &lt;a href="http://www.blogger.com/Alfresco_Datasheet_Records_Management.pdf" target="datasheet"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;The Formtek &lt;a href="http://www.formtek.com/"&gt;Web Site&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;The Alfresco &lt;a href="http://www.alfresco.com/"&gt;Web Site&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;input id="gwProxy" type="hidden" /&gt;&lt;!--Session data--&gt;&lt;input id="jsProxy" onclick="jsCall();" type="hidden" /&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-7153962180272016971?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/7153962180272016971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/04/alfresco-records-management.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/7153962180272016971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/7153962180272016971'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/04/alfresco-records-management.html' title='Alfresco Records Management Demonstration'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-7916432585408004950</id><published>2010-03-25T09:11:00.000-07:00</published><updated>2010-03-25T14:42:56.276-07:00</updated><title type='text'>Reviving Alfresco Share Thumbnail and Avatar Images</title><content type='html'>One great thing about Alfresco Share is (was) the ability to automatically create thumbnails for documents on upload. &amp;nbsp;Being able to visually browse your documents before opening them is a feature that many people like. &amp;nbsp;It can help you locate the document more quickly and helps to distinguish document contents in the case where documents are similarly named.&lt;br /&gt;&lt;br /&gt;The problem is that on Windows in Alfresco Enterprise 3.2r, this feature broke. &amp;nbsp;On upload of a document, Alfresco tries to generate the thumbnail for the image content, but fails and instead creates a zero-byte thumbnail file.&lt;br /&gt;&lt;br /&gt;You'll see something like this.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_GhtkS9fvzlk/S6uEm3cFiHI/AAAAAAAAAIg/1ElmFkt1Pq4/s1600/NoThumbnails.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="280" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/S6uEm3cFiHI/AAAAAAAAAIg/1ElmFkt1Pq4/s400/NoThumbnails.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;The default picture of a pair of gears displays whenever Share doesn't have a valid thumbnail file to display.&lt;br /&gt;&lt;br /&gt;Searching in the forums for a possible solution, I came across one &lt;a href="http://forums.alfresco.com/en/viewtopic.php?f=36&amp;amp;t=23723&amp;amp;p=83059#p83059"&gt;posted&lt;/a&gt; by Nicola Prando. &amp;nbsp;The bug and solution are also posted as &lt;a href="https://issues.alfresco.com/jira/browse/ALF-1978"&gt;ALF-1978&lt;/a&gt;. &amp;nbsp;Thanks Nicola!&lt;br /&gt;&lt;br /&gt;The trick to fix this is to define a base directory for ImageMagick to use on Windows. &amp;nbsp;You can find the following file:&lt;br /&gt;&lt;i&gt;C:\Alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\subsystems\thirdparty\default\imagemagick-transform-context.xml&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;You need to add the following lines to the property processProperties for the bean transformer.ImageMagick.Command:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;entry key="SYSTEMROOT"&amp;gt; &lt;br /&gt;       &amp;lt;value&amp;gt;C:/WINDOWS&amp;lt;/value&amp;gt; &lt;br /&gt;    &amp;lt;/entry&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;But it isn't good practice to modify a file in the core Alfresco directory. &amp;nbsp;Instead define a new imagemagick-transform-context.xml file and place here:&lt;br /&gt;&lt;i&gt;C:\Alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\extension\imagemagick-transform-context.xml&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The contents of the file with this change looks like:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;?xml version='1.0' encoding='UTF-8'?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'&amp;gt;&lt;br /&gt;&amp;lt;beans&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;bean id="transformer.worker.ImageMagick" class="org.alfresco.repo.content.transform.magick.ImageMagickContentTransformerWorker"&amp;gt;&lt;br /&gt;      &amp;lt;property name="mimetypeService"&amp;gt;&lt;br /&gt;         &amp;lt;ref bean="mimetypeService" /&amp;gt;&lt;br /&gt;      &amp;lt;/property&amp;gt;&lt;br /&gt;      &amp;lt;property name="executer"&amp;gt;&lt;br /&gt;         &amp;lt;bean name="transformer.ImageMagick.Command" class="org.alfresco.util.exec.RuntimeExec"&amp;gt;&lt;br /&gt;            &amp;lt;property name="commandsAndArguments"&amp;gt;&lt;br /&gt;               &amp;lt;map&amp;gt;&lt;br /&gt;                  &amp;lt;entry key=".*"&amp;gt;&lt;br /&gt;                     &amp;lt;list&amp;gt;&lt;br /&gt;                        &amp;lt;value&amp;gt;${img.exe}&amp;lt;/value&amp;gt;&lt;br /&gt;                        &amp;lt;value&amp;gt;${source}&amp;lt;/value&amp;gt;&lt;br /&gt;                        &amp;lt;value&amp;gt;SPLIT:${options}&amp;lt;/value&amp;gt;&lt;br /&gt;                        &amp;lt;value&amp;gt;${target}&amp;lt;/value&amp;gt;&lt;br /&gt;                     &amp;lt;/list&amp;gt;&lt;br /&gt;                  &amp;lt;/entry&amp;gt;&lt;br /&gt;               &amp;lt;/map&amp;gt;&lt;br /&gt;            &amp;lt;/property&amp;gt;&lt;br /&gt;            &amp;lt;property name="processProperties"&amp;gt; &lt;br /&gt;               &amp;lt;map&amp;gt;&lt;br /&gt;                  &amp;lt;entry key="MAGICK_HOME"&amp;gt;&lt;br /&gt;                     &amp;lt;value&amp;gt;${img.root}&amp;lt;/value&amp;gt;&lt;br /&gt;                  &amp;lt;/entry&amp;gt;&lt;br /&gt;                  &amp;lt;entry key="DYLD_LIBRARY_PATH"&amp;gt;&lt;br /&gt;                     &amp;lt;value&amp;gt;${img.dyn}&amp;lt;/value&amp;gt;&lt;br /&gt;                  &amp;lt;/entry&amp;gt;&lt;br /&gt;                  &amp;lt;entry key="LD_LIBRARY_PATH"&amp;gt;&lt;br /&gt;                     &amp;lt;value&amp;gt;${img.dyn}&amp;lt;/value&amp;gt;&lt;br /&gt;                  &amp;lt;/entry&amp;gt;&lt;br /&gt;    &amp;lt;entry key="SYSTEMROOT"&amp;gt; &lt;br /&gt;                     &amp;lt;value&amp;gt;C:/WINDOWS&amp;lt;/value&amp;gt; &lt;br /&gt;                  &amp;lt;/entry&amp;gt;&lt;br /&gt;               &amp;lt;/map&amp;gt;&lt;br /&gt;            &amp;lt;/property&amp;gt;&lt;br /&gt;            &amp;lt;property name="defaultProperties"&amp;gt;&lt;br /&gt;               &amp;lt;props&amp;gt;&lt;br /&gt;                  &amp;lt;prop key="options"&amp;gt;&amp;lt;/prop&amp;gt;&lt;br /&gt;               &amp;lt;/props&amp;gt;&lt;br /&gt;            &amp;lt;/property&amp;gt;&lt;br /&gt;         &amp;lt;/bean&amp;gt;&lt;br /&gt;      &amp;lt;/property&amp;gt;&lt;br /&gt;      &amp;lt;property name="checkCommand"&amp;gt;&lt;br /&gt;         &amp;lt;bean name="transformer.ImageMagick.CheckCommand" class="org.alfresco.util.exec.RuntimeExec"&amp;gt;&lt;br /&gt;            &amp;lt;property name="commandsAndArguments"&amp;gt;&lt;br /&gt;               &amp;lt;map&amp;gt;&lt;br /&gt;                  &amp;lt;entry key=".*"&amp;gt;&lt;br /&gt;                     &amp;lt;list&amp;gt;&lt;br /&gt;                        &amp;lt;value&amp;gt;${img.exe}&amp;lt;/value&amp;gt;&lt;br /&gt;                        &amp;lt;value&amp;gt;-version&amp;lt;/value&amp;gt;&lt;br /&gt;                     &amp;lt;/list&amp;gt;&lt;br /&gt;                  &amp;lt;/entry&amp;gt;&lt;br /&gt;               &amp;lt;/map&amp;gt;&lt;br /&gt;            &amp;lt;/property&amp;gt;&lt;br /&gt;         &amp;lt;/bean&amp;gt;&lt;br /&gt;      &amp;lt;/property&amp;gt;&lt;br /&gt;   &amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/beans&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;After doing that, thumbnails will get correctly created.&lt;br /&gt;&lt;br /&gt;Another tip, if you should ever need to debug Alfresco thumbnail creation, add the following lines to your log4j file to get debug information:&lt;br /&gt;&lt;i&gt;C:\Alfresco\tomcat\webapps\alfresco\WEB-INF\classes\log4j.properties&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;log4j.logger.org.alfresco.repo.content.transform=debug&lt;br /&gt;log4j.logger.org.alfresco.repo.thumbnail.ThumbnailServiceImpl=debug&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-7916432585408004950?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/7916432585408004950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/03/reviving-alfresco-share-thumbnail-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/7916432585408004950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/7916432585408004950'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/03/reviving-alfresco-share-thumbnail-and.html' title='Reviving Alfresco Share Thumbnail and Avatar Images'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_GhtkS9fvzlk/S6uEm3cFiHI/AAAAAAAAAIg/1ElmFkt1Pq4/s72-c/NoThumbnails.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-1502680005231639809</id><published>2010-03-19T16:23:00.000-07:00</published><updated>2010-03-19T16:26:46.688-07:00</updated><title type='text'>Alfresco 3.3 in the Making</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;About a month has passed since the Alfresco Enterprise 3.2r release. &amp;nbsp;The Alfresco development team is now in heads-down development, working on release 3.3. &amp;nbsp;The &lt;a href="http://wiki.alfresco.com/wiki/Roadmap#Alfresco_Community_and_Enterprise_3.3:_Q2_2010"&gt;roadmap &lt;/a&gt;for the 3.3 release is posted on the Alfresco wiki and the next upcoming release, version 3.3, is scheduled for Q2 2010.&lt;br /&gt;&lt;br /&gt;Out of curiosity, I thought that I'd check in with the latest Alfresco SVN HEAD source code to see some of the things that are brewing for the 3.3 release. &amp;nbsp;There are at least three areas that are showing interesting development, and I'll mention them here.&lt;br /&gt;&lt;br /&gt;I did run across some problems, but then this code is far from a release date of a few months from now.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Themes for Share&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The Admin Console of Share has been enhanced to include a new Tool plugin called "Application". &amp;nbsp;It looks like a place where overall Share configuration will be done via the UI. &amp;nbsp;The only thing there right now is the ability to select the Alfresco Share Theme. &amp;nbsp;Have a look at the "High Contrast Theme":&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_GhtkS9fvzlk/S6Pf2Fs8eYI/AAAAAAAAAHg/or4WyCqJDno/s1600-h/Alfresco33Theme1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="176" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/S6Pf2Fs8eYI/AAAAAAAAAHg/or4WyCqJDno/s400/Alfresco33Theme1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;And here is what the Dashboard looks like after the "Yellow Theme" is applied:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_GhtkS9fvzlk/S6Pf5CYPrVI/AAAAAAAAAHo/UN_tRlvDqEc/s1600-h/Alfresco33Theme2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="191" src="http://1.bp.blogspot.com/_GhtkS9fvzlk/S6Pf5CYPrVI/AAAAAAAAAHo/UN_tRlvDqEc/s400/Alfresco33Theme2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Space Rules in Share&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Alfresco 3.3 Roadmap mentions enhancements in Share around Space Rules:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Rule and Action Management&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;-&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: black; line-height: 24px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Linked Rules allowing rules to reused across multiple space&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - Compensating actions triggered on main action failure&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Now when looking at the Actions available for a Folder/Space within Share, you see the following options. &amp;nbsp;Here I compare how the Folder Actions options have changed.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;table cell-padding="0" cell-spacing="0"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_GhtkS9fvzlk/S6QGgz7blfI/AAAAAAAAAIY/ND4jy30nqYQ/s1600-h/Alfresco32FolderRules1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/_GhtkS9fvzlk/S6QGgz7blfI/AAAAAAAAAIY/ND4jy30nqYQ/s200/Alfresco32FolderRules1.png" width="175" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;b&gt;Folder Actions in 3.2r&lt;/b&gt;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_GhtkS9fvzlk/S6Pjk-6D2iI/AAAAAAAAAHw/3FLsu1rhcz4/s1600-h/Alfresco33FolderRules1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/S6Pjk-6D2iI/AAAAAAAAAHw/3FLsu1rhcz4/s200/Alfresco33FolderRules1.png" width="183" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;b&gt;Folder Actions in 3.3 pre-release&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;After clicking on "Manage Rules", you'll see the following:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_GhtkS9fvzlk/S6PklmQWm6I/AAAAAAAAAH4/fjerozOojcM/s1600-h/Alfresco33FolderRules2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="132" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/S6PklmQWm6I/AAAAAAAAAH4/fjerozOojcM/s400/Alfresco33FolderRules2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;On click of "Create Rule" you get a single screen for defining the new rule. &amp;nbsp;Unlike the wizard of Alfresco explorer, it's all in one place. &amp;nbsp;The "Link to Rule Set" will let you define libraries of reusable rules.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_GhtkS9fvzlk/S6PmzMcjEQI/AAAAAAAAAIA/LtnVPUptFQQ/s1600-h/Alfresco33CreateRule.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="345" src="http://1.bp.blogspot.com/_GhtkS9fvzlk/S6PmzMcjEQI/AAAAAAAAAIA/LtnVPUptFQQ/s400/Alfresco33CreateRule.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I think I prefer this consolidated view to defining a rule compared to the explorer wizard interface. &amp;nbsp;And it looks like a lot of the new rules functionality for Share is already working. &amp;nbsp;As shown above, I tried creating a rule on a space that adds the Taggable Aspect to incoming items to the folder. &amp;nbsp;Most of the UI is working pretty well. &amp;nbsp;The rule itself though didn't seem to get run when I later added content to the folder, and subsequent clicks on "Manage Rules" for the folder threw some errors.&lt;br /&gt;&lt;br /&gt;I also experimented by creating a rule that would assign a simple workflow to incoming items of the folder. &amp;nbsp;I selected the &lt;i&gt;Review and Approve&lt;/i&gt; Workflow with the option of moving the document to a different folder after approval. &amp;nbsp;I liked the interface for specifying the workflow, but this threw an error too. &amp;nbsp;It was interesting, although maybe not unexpected, that the error was one that shows the Surf logo. &amp;nbsp;That's the first time I've seen that in Share.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_GhtkS9fvzlk/S6PuWWcCHHI/AAAAAAAAAII/nr_YTHJ_AF4/s1600-h/Alfresco33SurfErrors.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="244" src="http://1.bp.blogspot.com/_GhtkS9fvzlk/S6PuWWcCHHI/AAAAAAAAAII/nr_YTHJ_AF4/s640/Alfresco33SurfErrors.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Alfresco Web Editor (AWE)&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Alfresco's Ben Hagan has written a &lt;a href="http://www.benh.co.uk/alfresco/alfresco-web-editor/getting-started/"&gt;Blog entry&lt;/a&gt; explaining how to build and test the new Alfresco Web Editor (AWE). &amp;nbsp;This is the Web Editor that will be used in future releases of Alfresco WCM.&lt;br /&gt;&lt;br /&gt;It all worked for me as described in Ben's blog, and it looks like it has good potential. &amp;nbsp;It looks a bit early though to start building anything out with it just yet. &amp;nbsp;But to already have something up and running is a good sign that there will probably be rapid progress on this front.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-1502680005231639809?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/1502680005231639809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/03/alfresco-33-in-making.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/1502680005231639809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/1502680005231639809'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/03/alfresco-33-in-making.html' title='Alfresco 3.3 in the Making'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_GhtkS9fvzlk/S6Pf2Fs8eYI/AAAAAAAAAHg/or4WyCqJDno/s72-c/Alfresco33Theme1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-8905006670855516287</id><published>2010-03-15T21:44:00.000-07:00</published><updated>2010-03-15T21:44:52.933-07:00</updated><title type='text'>Smart Record Filing with Alfresco Share</title><content type='html'>Suppose you are using Alfresco with Records Management and you'd like to simplify the task of filing documents within the Records Management File Plan. That way documents filed by any user could be easily and automatically moved to the right spot within the File Plan. &amp;nbsp;(Or in a similar scenario where document filing is needed outside of the Records Management world.)&lt;br /&gt;&lt;br /&gt;Consider a scenario that uses an Advanced workflow for document approval. &amp;nbsp;As the final step of the process, the document is accepted or rejected. &amp;nbsp;If accepted, we want to file the document correctly within the File Plan. And we'd like to be able to do it in a way that the user needn't have to know anything about the File Plan hierarchy. &amp;nbsp;Just hit "accept" and they're done.&lt;br /&gt;&lt;br /&gt;One way to do that is to identify something about the document attributes that can be used to trigger off of for where to file the document. &amp;nbsp;To keep things simple, let's consider the case where we trigger off of some text appearing within the name of the document.&lt;br /&gt;&lt;br /&gt;Suppose the following three File Plan paths exist:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Legal/Contracts/City Sewer&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Legal/Shareholder/2009Q3-public&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Legal/Corporate/2009Q3-10Q&lt;br /&gt;&lt;br /&gt;Depending on whether the following key words are contained in the document name string, the document will be moved to the appropriate folder: "Sewer", "Shareholder", "Corporate".&lt;br /&gt;&lt;br /&gt;We can write some server-side Javascript that will then process the file correctly.&lt;br /&gt;&lt;br /&gt;Consider this code snippet:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;// Define mapping pairs&lt;br /&gt;//   [ "String to search", "Alfresco space to map to" ]&lt;br /&gt;var remap = [ ["Sewer", "Sites/rm/documentLibrary/Legal/Contracts/City Sewer"],&lt;br /&gt;              ["Shareholder", "Sites/rm/documentLibrary/Legal/Shareholder/2009Q3-public"],&lt;br /&gt;              ["Corporate", "Sites/rm/documentLibrary/Legal/Corporate/2009Q3-10Q"] ];&lt;br /&gt;              &lt;br /&gt;// Get the Name of the document&lt;br /&gt;var docName = document.properties.name;&lt;br /&gt;&lt;br /&gt;for( m in remap )&lt;br /&gt;{&lt;br /&gt;    var check = remap[m];&lt;br /&gt;    if( docName.search( check[0] ) &amp;gt; -1 )&lt;br /&gt;    {&lt;br /&gt;       // Found a match.  String contained in document name&lt;br /&gt;       var destSpace = companyhome.childByNamePath( check[1] );&lt;br /&gt;       &lt;br /&gt;       // Move the document to the right Alfresco space&lt;br /&gt;       document.move(destSpace);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This code could be embedded within the approval workflow process definition file.  Or it could be extracted out into an external script.  For example, the workflow might simply move the file to an "approve" folder and that folder could have an Alfresco rule assigned to it that executes the Javascript for filing.  In that case, if the identification fails, the document stays in the "approve" folder and must be manually identified and filed.&lt;br /&gt;&lt;br /&gt;The Javascript code defines an array of filing rules that specify which folder to move the document to depending on a match on part of the document name.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-8905006670855516287?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/8905006670855516287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/03/smart-record-filing-with-alfresco-share.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/8905006670855516287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/8905006670855516287'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/03/smart-record-filing-with-alfresco-share.html' title='Smart Record Filing with Alfresco Share'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-8827404709314247929</id><published>2010-03-10T16:56:00.000-08:00</published><updated>2010-03-10T16:58:00.128-08:00</updated><title type='text'>Tip: Repository Browsing in Alfresco Share 3.2r</title><content type='html'>There's a cool but not-well-publicized feature of the Alfresco 3.2r release (February 16) in Alfresco Share -- general browsing of the entire Alfresco Repository from the Share interface. &amp;nbsp;&lt;a href="http://twitter.com/PaulDHampton"&gt;Paul Hampton&lt;/a&gt;, director of Product Marketing at Alfresco, briefly showed the feature in a webinar and later wrote a &lt;a href="http://blogs.alfresco.com/wp/phampton/2010/02/25/access-the-document-library-from-alfresco-share/#comments"&gt;blog entry&lt;/a&gt;&amp;nbsp;describing it.&lt;br /&gt;&lt;br /&gt;Since Alfresco is in the process of migrating functionality from their 'classic' explorer client application to Share, it makes sense that general repository browsing be migrated. &amp;nbsp;Until this release, Share was only able to browse files in the document libraries of Share sites.&lt;br /&gt;&lt;br /&gt;The feature is turned off by default, but it can be enabled by changing a boolean flag in the configuration file:&lt;br /&gt;&lt;i&gt;...\tomcat\shared\classes\alfresco\web-extension\share-config-custom.xml&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This section of the XML configuration needs to be changed:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&lt;config condition="RepositoryLibrary" evaluator="string-compare" replace="true"&gt;&lt;br /&gt;      &lt;br /&gt;      &lt;visible&gt;true&lt;/visible&gt;&lt;br /&gt;&lt;/config&gt;&lt;/pre&gt;&lt;br /&gt;The 'visible' flag needs to be set to true to be enabled.&lt;br /&gt;&lt;br /&gt;After making that change and restarting the server, you'll see a link to the repository on your Share home page along the top links to the right of the Share logo. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_GhtkS9fvzlk/S5g_H6gluYI/AAAAAAAAAHY/Z0si1WUnejQ/s1600-h/rep1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="80" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/S5g_H6gluYI/AAAAAAAAAHY/Z0si1WUnejQ/s400/rep1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;After clicking on the Repository link, you'll then be able to browse the standard Alfresco repository. &amp;nbsp;(You may need to F5/refresh your browser cache to see it.) &amp;nbsp;You can upload files, create folders and create new content. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_GhtkS9fvzlk/S5g_BOddQxI/AAAAAAAAAHQ/9-YcSeIHvEs/s1600-h/rep2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/S5g_BOddQxI/AAAAAAAAAHQ/9-YcSeIHvEs/s400/rep2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-8827404709314247929?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/8827404709314247929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/03/repository-browsing-in-alfresco-share.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/8827404709314247929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/8827404709314247929'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/03/repository-browsing-in-alfresco-share.html' title='Tip: Repository Browsing in Alfresco Share 3.2r'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_GhtkS9fvzlk/S5g_H6gluYI/AAAAAAAAAHY/Z0si1WUnejQ/s72-c/rep1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-1650859382021145887</id><published>2010-03-03T18:09:00.000-08:00</published><updated>2010-03-03T18:09:54.452-08:00</updated><title type='text'>Tip:  Setting Alfresco Global Properties</title><content type='html'>Configuration of Alfresco can be a bit challenging. &amp;nbsp;It takes some time to get a feel for which file needs to be modified and what directory that file is in. &amp;nbsp;Part of the reason for the number of files has to do with the fact that Alfresco is based on Spring, and Alfresco has adopted &lt;a href="http://wiki.alfresco.com/wiki/Overriding_Spring_Configuration"&gt;Spring configuration&lt;/a&gt; methodology.&lt;br /&gt;&lt;br /&gt;In Alfresco 3.2 some of the complexity around finding where to make a configuration change has been simplified. &amp;nbsp;Alfresco introduces the concept of the alfresco-globals.properties file. &amp;nbsp;This new file tries to centralize as much as possible basic Alfresco configuration parameters &amp;nbsp;and settings.&lt;br /&gt;&lt;br /&gt;alfresco-globals is basically a global override file. &amp;nbsp;The goals was to try to simplify common configuration settings into a single file. &amp;nbsp;Rather than centralizing everything into one file, which would be quite large and unwieldy, parameters defined in this file override parameters defined elsewhere in the standard configuration files used up until now.&lt;br /&gt;&lt;br /&gt;After a full Windows install of an Alfresco 3.2+ system, you'll find this file in your tomcat\shared\classes directory. It will contain some of the settings selected during the installation process, like database connection information. &amp;nbsp;If the file isn't already there, you can find a template for it here:&lt;br /&gt;&amp;nbsp;&amp;nbsp; ..../tomcat/webapps/alfresco/WEB-INF/classes/alfresco-global.properties.sample&lt;br /&gt;&lt;br /&gt;Some of the most common settings that are configured in Alfresco that can now be set/overridden by values in &amp;nbsp;&lt;a href="http://wiki.alfresco.com/wiki/Repository_Configuration#Mixing_alfresco-global.properties_and_System_Property_Setting"&gt;alfresco-global file include parameters&lt;/a&gt; from these files:&lt;br /&gt;..../tomcat/webapps/alfresco/WEB-INF/classes/alfresco/&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;repository.properties&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; line-height: normal;"&gt;..../tomcat/webapps/alfresco/WEB-INF/classes/alfresco/&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;hibernate-cfg.properties&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; line-height: normal;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;Override values for &lt;a href="http://wiki.alfresco.com/wiki/Alfresco_Subsystems#alfresco-global.properties"&gt;Alfresco subsystems&lt;/a&gt; are also set in the alfresco-global.properties file.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-1650859382021145887?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/1650859382021145887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/03/tip-setting-alfresco-global-properties.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/1650859382021145887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/1650859382021145887'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/03/tip-setting-alfresco-global-properties.html' title='Tip:  Setting Alfresco Global Properties'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-5639043776739479630</id><published>2010-02-24T14:57:00.000-08:00</published><updated>2010-02-24T14:59:58.656-08:00</updated><title type='text'>Improved Alfresco Administration</title><content type='html'>Alfresco 3.2r, just released on February 15th, comes along with some great new tools for administration. Alfresco's Paul Hampton described and demo-ed two categories of new features in a &lt;a href="http://blogs.alfresco.com/wp/webcasts/2010/02/simple-administration-with-alfresco-enterprise-edition/"&gt;Alfresco recorded webcast&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;New Subsystems&lt;/li&gt;&lt;li&gt;Storage Policies&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;i&gt;&lt;a href="http://www.blogger.com/goog_1267047128371"&gt;Subsystems&lt;/a&gt;&lt;/i&gt;&lt;a href="http://wiki.alfresco.com/wiki/Alfresco_Subsystems"&gt; &lt;/a&gt;are mini-servers that run embedded within the overall Alfresco system. &amp;nbsp;They are independent processes that can be brought up and down. &amp;nbsp;This design lets an administrator of the system change a single configuration without having to bring down the entire Alfresco system. &amp;nbsp;The advantages are reliability and availability.&lt;br /&gt;&lt;br /&gt;Subsystems can be configured via any JMX client [&lt;span class="Apple-style-span" style="color: red;"&gt;Enterprise Alfresco only&lt;/span&gt;]. &amp;nbsp;In the demonstration, Paul used JConsole, a common JMX console used by the JDK. &amp;nbsp;From the console, the subsystems can be stopped and started, and parameters of the individual subsystems can then be reconfigured.&lt;br /&gt;&lt;br /&gt;Starting in Alfresco 3.2 the file &lt;a href="http://wiki.alfresco.com/wiki/Alfresco_Subsystems#alfresco-global.properties"&gt;alfresco-global.properties&lt;/a&gt;&amp;nbsp;is a centralized place for system configurations -- unless you are using JMX. &amp;nbsp;If you are using JMX, the alfresco-global.properties file values are used until you configure new subsystem values via JMX. &amp;nbsp;JMX changes get stored in the database, and thereafter, any time you start your system, the database values will override those of the properties file. &amp;nbsp;An advantage of this approach is that system changes are stored in the database and easily propagated to all servers in a cluster. &amp;nbsp;But the properties file is not updated and may lead to confusion about what system values &amp;nbsp;are currently being used.&lt;br /&gt;&lt;br /&gt;Examples of Alfresco Subsystems include:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Authentication&lt;/li&gt;&lt;li&gt;Synchronization&lt;/li&gt;&lt;li&gt;File Servers&lt;/li&gt;&lt;li&gt;Third party&lt;/li&gt;&lt;li&gt;IMAP&lt;/li&gt;&lt;li&gt;WCM Development Receiver&lt;/li&gt;&lt;li&gt;SysAdmin&lt;/li&gt;&lt;li&gt;OpenOffice Transformations&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Paul gives a good detailed example in the demonstration of how he could stop the OpenOffice Transformation &amp;nbsp;subsystem, configure a second one, and then start up two OpenOffice Transformation subsystems.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.alfresco.com/wiki/Content_Store_Selector"&gt;Storage Policies&lt;/a&gt; were covered in the second portion of the webcast. &amp;nbsp;(There is also an Alfresco brief description of Storage Policies &lt;a href="http://blogs.alfresco.com/wp/enterprise/blogposts/187"&gt;here&lt;/a&gt;.) &amp;nbsp;Storage policies can be part of an Information Lifecycle Management (ILM) strategy. &amp;nbsp;They let the administrator determine which content should be stored where.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_GhtkS9fvzlk/S4WugUG75cI/AAAAAAAAAHI/QDuCVp4pO7A/s1600-h/ILM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/S4WugUG75cI/AAAAAAAAAHI/QDuCVp4pO7A/s400/ILM.png" width="347" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Paul shows in the webcast an example where he automatically stores content to a particular location based on content type -- or whatever other criteria you might have. &amp;nbsp;He accomplishes this by setting up rules that get run when the content is checked in. &amp;nbsp;Images, videos, and PDFs, for example, could all be stored in separate directories or volumes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-5639043776739479630?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/5639043776739479630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/02/improved-alfresco-administration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/5639043776739479630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/5639043776739479630'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/02/improved-alfresco-administration.html' title='Improved Alfresco Administration'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GhtkS9fvzlk/S4WugUG75cI/AAAAAAAAAHI/QDuCVp4pO7A/s72-c/ILM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-8784488754115622656</id><published>2010-02-23T10:32:00.000-08:00</published><updated>2010-02-23T10:32:09.876-08:00</updated><title type='text'>Alfresco named by KMWorld as one of the top 100 KM companies</title><content type='html'>&lt;a href="http://kmworld.com/"&gt;KMWorld Magazine&lt;/a&gt; announced today that &lt;a href="http://www.alfresco.com/media/releases/2010/02/kmworld/index.jsp"&gt;Alfresco &lt;/a&gt;was named as one of the "100 Companies that Matter in Knowledge Management".  KMWorld worked with analysts, vendors and customers to compile the list which will be posted to www.kmworld.com on March 1.&lt;br /&gt;&lt;br /&gt;This will be the first year for Alfresco to be on that list, and it follows up quickly after an announcement that Alfresco was named to CIO's list of &lt;a href="http://keytocontent.blogspot.com/2010/02/alfresco-one-of-cio-uks-twenty.html"&gt;top 20 UK companies&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;"In today’s knowledge economy, Alfresco Software does more than simply throw sophisticated technology at its customers, it provides real solutions through inspired planning and execution throughout the entire constituency chain," said Hugh McKellar, KMWorld editor in chief.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-8784488754115622656?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/8784488754115622656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/02/alfresco-named-by-kmworld-as-one-of-top.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/8784488754115622656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/8784488754115622656'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/02/alfresco-named-by-kmworld-as-one-of-top.html' title='Alfresco named by KMWorld as one of the top 100 KM companies'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-5550407068525664646</id><published>2010-02-22T17:26:00.000-08:00</published><updated>2010-02-22T17:27:31.919-08:00</updated><title type='text'>Alfresco WCM followup</title><content type='html'>Last week in a &lt;a href="http://blogs.alfresco.com/wp/webcasts/2010/02/qa-session-wcm-32r-33-and-beyond/"&gt;followup webcast&lt;/a&gt; to an &lt;a href="http://blogs.alfresco.com/wp/webcasts/2010/02/wcm-roadmap-webinar-versions-33-and-40/"&gt;early February webcast&lt;/a&gt;, Alfresco hosted a question and answer session about their planned roadmap for WCM in 2010.  Both are pretty informative.&lt;br /&gt;&lt;br /&gt;Interestingly as well, there have been a couple of other recent announcements of Alfresco-based WCM offerings, some of which aren't using Alfresco's standard WCM.&lt;br /&gt;&lt;br /&gt;Jeff Potts in a good blog post last year described the &lt;a href="http://ecmarchitect.com/archives/2009/08/31/1038"&gt;differences between the WCM and DM&lt;/a&gt; repositories.  The fact that there are two and that they are not fully compatible has led to some headaches. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://pepper.vodori.com/"&gt;Vodori &lt;/a&gt;has a video out showing their product &lt;a href="http://bit.ly/cYYcNt"&gt;Pepper&lt;/a&gt;.  The Pepper tag library integrates well with a standard JSP-based web site.  WYSIWYG and templated page edits are possible.  Pepper was implemented using Alfresco WCM to take advantage of the Alfresco WCM publishing capabilities, but they are migrating to the use of the standard DM repository as Alfresco plans to support DM publishing alongside the release of the CMIS 1.0 version.&lt;br /&gt;&lt;br /&gt;Last week the &lt;a href="http://www.bluefishgroup.com/wcm/about-wcm-practice.php"&gt;Blue Fish Group&lt;/a&gt; hosted an &lt;a href="http://www.alfresco.com/about/events/2010/02/blue_fish_webinar_18feb/"&gt;Alfresco Webinar&lt;/a&gt;.  They presented a very nice WCM solution, but one that doesn't use Alfresco's native WCM tools.  Their comment was that Alfresco WCM is a bit of a challenge for non-techie people.  Their goal was to create a system that would accommodate the needs of casual web content creators.&lt;br /&gt;&lt;br /&gt;So while Alfresco has hit a home run with its standard DM capabilities, they still need to do some more work in the area of WCM.  While that is a criticism, it's really hard to complain, considering how much Alfresco has done and gotten right over the last five years.&lt;br /&gt;&lt;br /&gt;And based on the roadmap, Alfresco is strongly focused on Web Content Management this year.  Starting with the recent 3.2r release and the planned 3.3, 3.4 and 4.0 releases, WCM seems to be a central component of their plan.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-5550407068525664646?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/5550407068525664646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/02/alfresco-wcm-followup.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/5550407068525664646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/5550407068525664646'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/02/alfresco-wcm-followup.html' title='Alfresco WCM followup'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-8069849258805694</id><published>2010-02-17T16:53:00.000-08:00</published><updated>2010-02-17T16:55:54.224-08:00</updated><title type='text'>Creating a Share Form for an Alfresco Custom Type having Two Columns</title><content type='html'>This is a followup to a previous blog post that described a form created for use with a custom type. &amp;nbsp;In this blog we show that it is easy to further control the layout of the form by applying a template to the form. &amp;nbsp;The template is uses Freemarker. &amp;nbsp;And it's possible to specify a separate template for each of the possible modes of the form: view, edit, and create.&lt;br /&gt;&lt;br /&gt;By adding the following three lines to the form definition of the file web-framework-config-custom, the template(s) can be specified:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;view-form template="/tab-edit-form.ftl" /&amp;gt;&lt;br /&gt;           &amp;lt;edit-form template="/tab-edit-form.ftl" /&amp;gt;&lt;br /&gt;    &amp;lt;create-form template="/tab-edit-form.ftl" /&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And when viewed in whole context of the form definition, we now have:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;alfresco-config&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;config evaluator="node-type" condition="mm:doc"&amp;gt;&lt;br /&gt;    &amp;lt;forms&amp;gt;&lt;br /&gt;       &amp;lt;form&amp;gt;&lt;br /&gt;    &amp;lt;view-form template="/newtemplate.ftl" /&amp;gt;&lt;br /&gt;       &amp;lt;edit-form template="/newtemplate.ftl" /&amp;gt;&lt;br /&gt;    &amp;lt;create-form template="/newtemplate.ftl" /&amp;gt;&lt;br /&gt;          &amp;lt;field-visibility&amp;gt;&lt;br /&gt;             &amp;lt;!-- inherited from cm:content --&amp;gt;&lt;br /&gt;             &amp;lt;show id="cm:name" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="cm:title" force="true" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="cm:description" force="true" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="mimetype" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="cm:author" force="true" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="size" for-mode="view" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="cm:creator" for-mode="view" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="cm:created" for-mode="view" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="cm:modifier" for-mode="view" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="cm:modified" for-mode="view" /&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;!--  aspect mm:colorAble --&amp;gt;             &lt;br /&gt;             &amp;lt;show id="mm:color" /&amp;gt;&lt;br /&gt;             &lt;br /&gt;             &amp;lt;!--  specific for mm:doc --&amp;gt;&lt;br /&gt;             &amp;lt;show id="mm:relatedDocuments" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="mm:freeText" /&amp;gt;&lt;br /&gt;&lt;br /&gt;           &lt;br /&gt;          &amp;lt;/field-visibility&amp;gt;&lt;br /&gt;          &amp;lt;appearance&amp;gt;&lt;br /&gt;             &amp;lt;set id="builtin" appearance="fieldset" label="Built In" /&amp;gt;&lt;br /&gt;             &amp;lt;set id="custom" appearance="fieldset" label="Custom Data" /&amp;gt;&lt;br /&gt;             &amp;lt;set id="mandatory" parent="builtin" appearance="panel" label="Mandatory" /&amp;gt;&lt;br /&gt;             &amp;lt;set id="optional" parent="builtin" appearance="panel" label="Optional" /&amp;gt;&lt;br /&gt;             &lt;br /&gt;             &amp;lt;field id="cm:name" set="mandatory" /&amp;gt;&lt;br /&gt;             &amp;lt;field id="cm:title" set="optional" /&amp;gt;&lt;br /&gt;             &amp;lt;field id="cm:description" set="optional" /&amp;gt;&lt;br /&gt;             &amp;lt;field id="mimetype" set="optional" /&amp;gt;&lt;br /&gt;             &amp;lt;field id="cm:author" set="optional" /&amp;gt;&lt;br /&gt;             &amp;lt;field id="size" set="optional" /&amp;gt;&lt;br /&gt;             &amp;lt;field id="cm:creator" set="optional" /&amp;gt;&lt;br /&gt;             &amp;lt;field id="cm:created" set="optional" /&amp;gt;&lt;br /&gt;             &amp;lt;field id="cm:modified" set="optional" /&amp;gt;        &lt;br /&gt;             &amp;lt;field id="cm:modifier" set="optional" /&amp;gt;&lt;br /&gt;               &lt;br /&gt;             &amp;lt;field id="mm:relatedDocuments" label="Related Docs" set="custom"/&amp;gt;&lt;br /&gt;             &amp;lt;field id="mm:freeText" label="More Information" set="custom"/&amp;gt;&lt;br /&gt;             &amp;lt;field id="mm:color" label="Color" set="custom"&amp;gt;&lt;br /&gt;                &amp;lt;control template="controls/selectone.ftl"&amp;gt;&lt;br /&gt;                   &amp;lt;control-param name="options"&amp;gt;Red,Orange,Yellow,Green,Blue,Indigo,Violet&amp;lt;/control-param&amp;gt;&lt;br /&gt;                &amp;lt;/control&amp;gt;&lt;br /&gt;             &amp;lt;/field&amp;gt;&lt;br /&gt;          &amp;lt;/appearance&amp;gt;&lt;br /&gt;       &amp;lt;/form&amp;gt;&lt;br /&gt;    &amp;lt;/forms&amp;gt;&lt;br /&gt; &amp;lt;/config&amp;gt;&lt;br /&gt;&amp;lt;/alfresco-config&amp;gt;&lt;br /&gt;&lt;/pre&gt;Next we define the Freemarker template file.  The code for this example is found on the Alfresco Wiki Form Example &lt;a href="http://wiki.alfresco.com/wiki/Forms_Examples#Providing_A_Custom_Form_Template"&gt;page&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;tomcat\webapps\share\WEB-INF\classes\alfresco\web-extension\site-webscripts\newtemplate.ftl&lt;/b&gt;  &lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;#import "/org/alfresco/components/form/form.lib.ftl" as formLib /&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;#if error?exists&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;div class="error"&amp;gt;${error}&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;#elseif form?exists&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;#assign formId=args.htmlid + "-form"&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;#assign formUI&amp;gt;&amp;lt;#if args.formUI??&amp;gt;${args.formUI}&amp;lt;#else&amp;gt;true&amp;lt;/#if&amp;gt;&amp;lt;/#assign&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;#if formUI == "true"&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;@formLib.renderFormsRuntime formId=formId /&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;/#if&amp;gt;&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;   &amp;lt;div id="${formId}-container" class="form-container"&amp;gt;&lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;      &amp;lt;#if form.showCaption?exists &amp;amp;&amp;amp; form.showCaption&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;div id="${formId}-caption" class="caption"&amp;gt;&amp;lt;span class="mandatory-indicator"&amp;gt;*&amp;lt;/span&amp;gt;${msg("form.required.fields")}&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;/#if&amp;gt;&lt;br /&gt;&lt;br /&gt;         &lt;br /&gt;&lt;br /&gt;      &amp;lt;#if form.mode != "view"&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;form id="${formId}" method="${form.method}" accept-charset="utf-8" enctype="${form.enctype}" action="${form.submissionUrl}"&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;/#if&amp;gt;&lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;      &amp;lt;div id="${formId}-fields" class="form-fields"&amp;gt; &lt;br /&gt;&lt;br /&gt;        &amp;lt;#list form.structure as item&amp;gt;&lt;br /&gt;&lt;br /&gt;            &amp;lt;#if item.kind == "set"&amp;gt;&lt;br /&gt;&lt;br /&gt;               &amp;lt;@renderSetWithColumns set=item /&amp;gt;&lt;br /&gt;&lt;br /&gt;            &amp;lt;#else&amp;gt;&lt;br /&gt;&lt;br /&gt;               &amp;lt;@formLib.renderField field=form.fields[item.id] /&amp;gt;&lt;br /&gt;&lt;br /&gt;            &amp;lt;/#if&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;/#list&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;         &lt;br /&gt;&lt;br /&gt;      &amp;lt;#if form.mode != "view"&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;@formLib.renderFormButtons formId=formId /&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;/#if&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/#if&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;#macro renderSetWithColumns set&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;#if set.appearance?exists&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;#if set.appearance == "fieldset"&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;fieldset&amp;gt;&amp;lt;legend&amp;gt;${set.label}&amp;lt;/legend&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;#elseif set.appearance == "panel"&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;div class="form-panel"&amp;gt;&lt;br /&gt;&lt;br /&gt;            &amp;lt;div class="form-panel-heading"&amp;gt;${set.label}&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;            &amp;lt;div class="form-panel-body"&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;/#if&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;/#if&amp;gt;&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;   &amp;lt;#list set.children as item&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;#if item.kind == "set"&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;@renderSetWithColumns set=item /&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;#else&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;#if (item_index % 2) == 0&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;div class="yui-g"&amp;gt;&amp;lt;div class="yui-u first"&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;#else&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;div class="yui-u"&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;/#if&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;@formLib.renderField field=form.fields[item.id] /&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;#if ((item_index % 2) != 0) || !item_has_next&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/#if&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;/#if&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;/#list&amp;gt;&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;   &amp;lt;#if set.appearance?exists&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;#if set.appearance == "fieldset"&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;/fieldset&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;#elseif set.appearance == "panel"&amp;gt;&lt;br /&gt;&lt;br /&gt;            &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;         &amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;/#if&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;/#if&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/#macro&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;In the template there is a reference to the form object and its element members, things like form.mode, form.structure, form.showCaption, etc.  The definition of these elements can be found on the Alfresco wiki &lt;a href="http://wiki.alfresco.com/wiki/Forms#Using_the_Form_Component"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;When the form is rendered for the a document of this custom type, this is what it looks like now. &amp;nbsp;The form is now rendered with two columns.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_GhtkS9fvzlk/S3yLPo8hfiI/AAAAAAAAAHA/ttzDupA7jBY/s1600-h/twocolumns.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="295" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/S3yLPo8hfiI/AAAAAAAAAHA/ttzDupA7jBY/s400/twocolumns.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-8069849258805694?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/8069849258805694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/02/creating-share-form-for-alfresco-custom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/8069849258805694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/8069849258805694'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/02/creating-share-form-for-alfresco-custom.html' title='Creating a Share Form for an Alfresco Custom Type having Two Columns'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_GhtkS9fvzlk/S3yLPo8hfiI/AAAAAAAAAHA/ttzDupA7jBY/s72-c/twocolumns.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-4022938192998961547</id><published>2010-02-17T07:38:00.000-08:00</published><updated>2010-02-17T07:38:17.810-08:00</updated><title type='text'>Alfresco one of CIO UK's Twenty Companies to Watch in 2010</title><content type='html'>Alfresco was named one of &lt;a href="http://www.cio.co.uk/article/3210025/twenty-companies--to-watch-in-2010?pn=3"&gt;CIO magazine's top 20 UK companies&lt;/a&gt; to watch in 2010.&amp;nbsp; The list is intended to highlight vendors that are expected to see rapid growth in 2010.&amp;nbsp; The companies in the list were selected by three analysts from MWD Advisors and CIO UK editor, Martin Veitch.&lt;br /&gt;&lt;br /&gt;The reasons for selecting Alfresco for the list included their large user base and current momentum in the marketplace.&lt;br /&gt;&lt;input id="gwProxy" type="hidden" /&gt;&lt;!--Session data--&gt;&lt;input id="jsProxy" onclick="jsCall();" type="hidden" /&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-4022938192998961547?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/4022938192998961547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/02/alfresco-one-of-cio-uks-twenty.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/4022938192998961547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/4022938192998961547'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/02/alfresco-one-of-cio-uks-twenty.html' title='Alfresco one of CIO UK&apos;s Twenty Companies to Watch in 2010'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-6299144055873599169</id><published>2010-02-16T17:09:00.000-08:00</published><updated>2010-02-16T17:09:26.381-08:00</updated><title type='text'>Using the Alfresco Share Forms Test Page</title><content type='html'>In the previous post we created a custom document type for the content model and defined a web form to display the content for the custom metadata within Alfresco Share.&lt;br /&gt;&lt;br /&gt;Share 3.2 also has a cool little utility called the form test page. &amp;nbsp;The Alfresco wiki indicates that this page may be plugged into the Share Administration page as a module at some point in the future. &amp;nbsp;For now, you can see it here:&lt;br /&gt;&lt;br /&gt;http://localhost:8080/share/page/test-form&lt;br /&gt;&lt;br /&gt;After checking in a document as the new custom type, you can go to the node browser in the Administration pages of the Alfresco explorer client and grab it's node path reference.&lt;br /&gt;&lt;br /&gt;Using that path on the test form page, we can preview the form.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_GhtkS9fvzlk/S3s2qCd57gI/AAAAAAAAAGw/sWkxvEDO3zI/s1600-h/formstestpage.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/S3s2qCd57gI/AAAAAAAAAGw/sWkxvEDO3zI/s640/formstestpage.png" width="476" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;Now, we can play a bit with the &lt;appearance&gt; tag for the form. &amp;nbsp;Consider the following changes to appearance (compared to the appearance tag definition of the form defined in yesterday's blog):&lt;/appearance&gt;&lt;br /&gt;&lt;appearance&gt;&lt;br /&gt;&lt;/appearance&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;appearance&amp;gt;&lt;br /&gt;             &amp;lt;set id="builtin" appearance="fieldset" label="Built In" /&amp;gt;&lt;br /&gt;             &amp;lt;set id="custom" appearance="fieldset" label="Custom Data" /&amp;gt;&lt;br /&gt;             &amp;lt;set id="mandatory" parent="builtin" appearance="panel" label="Mandatory" /&amp;gt;&lt;br /&gt;             &amp;lt;set id="optional" parent="builtin" appearance="panel" label="Optional" /&amp;gt;&lt;br /&gt;             &lt;br /&gt;             &amp;lt;field id="cm:name" set="mandatory" /&amp;gt;&lt;br /&gt;             &amp;lt;field id="cm:title" set="optional" /&amp;gt;&lt;br /&gt;             &amp;lt;field id="cm:description" set="optional" /&amp;gt;&lt;br /&gt;             &amp;lt;field id="mimetype" set="optional" /&amp;gt;&lt;br /&gt;             &amp;lt;field id="cm:author" set="optional" /&amp;gt;&lt;br /&gt;             &amp;lt;field id="size" set="optional" /&amp;gt;&lt;br /&gt;             &amp;lt;field id="cm:creator" set="optional" /&amp;gt;&lt;br /&gt;             &amp;lt;field id="cm:created" set="optional" /&amp;gt;&lt;br /&gt;             &amp;lt;field id="cm:modified" set="optional" /&amp;gt;        &lt;br /&gt;             &amp;lt;field id="cm:modifier" set="optional" /&amp;gt;&lt;br /&gt;               &lt;br /&gt;             &amp;lt;field id="mm:relatedDocuments" label="Related Docs" set="custom"/&amp;gt;&lt;br /&gt;             &amp;lt;field id="mm:freeText" label="More Information" set="custom"/&amp;gt;&lt;br /&gt;             &amp;lt;field id="mm:color" label="Color" set="custom"&amp;gt;&lt;br /&gt;                &amp;lt;control template="controls/selectone.ftl"&amp;gt;&lt;br /&gt;                   &amp;lt;control-param name="options"&amp;gt;Red,Orange,Yellow,Green,Blue,Indigo,Violet&amp;lt;/control-param&amp;gt;&lt;br /&gt;                &amp;lt;/control&amp;gt;&lt;br /&gt;             &amp;lt;/field&amp;gt;&lt;br /&gt;          &amp;lt;/appearance&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here we separate the metadata into groups or 'sets'&lt;set&gt;. For this example, we divide the metadata into two types: builtin and custom. And of the builtin fields, we further divide the fields into 'mandatory' or 'optional'. After making those changes (and restarting the server -- 'boo'), we're able to see the changes:&lt;/set&gt;&lt;br /&gt;&lt;set&gt;&lt;br /&gt;&lt;/set&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_GhtkS9fvzlk/S3tAgq-NOoI/AAAAAAAAAG4/C98weF9Eido/s1600-h/testform2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://1.bp.blogspot.com/_GhtkS9fvzlk/S3tAgq-NOoI/AAAAAAAAAG4/C98weF9Eido/s640/testform2.png" width="412" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;set&gt;&lt;br /&gt;&lt;br /&gt;&lt;/set&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-6299144055873599169?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/6299144055873599169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/02/using-alfresco-share-forms-test-page.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/6299144055873599169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/6299144055873599169'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/02/using-alfresco-share-forms-test-page.html' title='Using the Alfresco Share Forms Test Page'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_GhtkS9fvzlk/S3s2qCd57gI/AAAAAAAAAGw/sWkxvEDO3zI/s72-c/formstestpage.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-8954658374791750617</id><published>2010-02-16T10:00:00.000-08:00</published><updated>2010-02-16T15:50:10.173-08:00</updated><title type='text'>Creating Edit Forms for Custom Types in Alfresco Share</title><content type='html'>Most organizations that will use Alfresco will want to create custom types. &lt;br /&gt;Associated with each custom type is a data model or set of metadata that is unique to that type of document.&lt;br /&gt;To be able to edit document type metadata in Alfresco Share, you need to define an edit form.&lt;br /&gt;&lt;br /&gt;Here's a brief example for how to set up and define the metadata for a custom document type and then how to define a Share edit form for that custom type.&lt;br /&gt;&lt;br /&gt;Some good resources with getting started with Alfresco Share forms include:&lt;br /&gt;&lt;br /&gt;Alfresco Wiki Form Developer Guide &lt;a href="http://wiki.alfresco.com/wiki/Forms"&gt;page&lt;/a&gt;.&lt;br /&gt;Alfresco Wiki Form Examples &lt;a href="http://wiki.alfresco.com/wiki/Forms_Examples"&gt;page&lt;/a&gt;. &amp;nbsp;[Good starting place]&lt;br /&gt;&lt;a href="http://edlovesjava.blogspot.com/2009/07/alfresco-forms-engine-customization.html"&gt;Ed Loves Java&lt;/a&gt; on creating Alfresco Share 3.2 forms.&lt;br /&gt;&lt;a href="http://loftux.se/en/2010/02/11/alfresco-forms-for-share/"&gt;Loftux &lt;/a&gt;on Alfresco Forms&lt;br /&gt;&lt;br /&gt;First we define a minimum custom Alfresco type.  There are four files needed to add this new type to the content model.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;tomcat\alfresco\WEB-INF\classes\extension\model\mmModel.xml&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;!-- Definition of new Model --&amp;gt;&lt;br /&gt;&amp;lt;model name="mm:minmodel" xmlns="http://www.alfresco.org/model/dictionary/1.0"&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- Optional meta-data about the model --&amp;gt;&lt;br /&gt; &amp;lt;description&amp;gt;MinProperty Model&amp;lt;/description&amp;gt;&lt;br /&gt; &amp;lt;author&amp;gt;Formtek&amp;lt;/author&amp;gt;&lt;br /&gt; &amp;lt;version&amp;gt;1.0&amp;lt;/version&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- Imports are required to allow references to definitions in other models --&amp;gt;&lt;br /&gt; &amp;lt;imports&amp;gt;&lt;br /&gt;  &amp;lt;!-- Import Alfresco Dictionary Definitions --&amp;gt;&lt;br /&gt;  &amp;lt;import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d" /&amp;gt;&lt;br /&gt;  &amp;lt;!-- Import Alfresco Content Domain Model Definitions --&amp;gt;&lt;br /&gt;  &amp;lt;import uri="http://www.alfresco.org/model/content/1.0" prefix="cm" /&amp;gt;&lt;br /&gt; &amp;lt;/imports&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- Introduction of new namespaces defined by this model --&amp;gt;&lt;br /&gt; &amp;lt;namespaces&amp;gt;&lt;br /&gt;  &amp;lt;namespace uri="http://www.formtek.com/model/content/1.0" prefix="mm" /&amp;gt;&lt;br /&gt; &amp;lt;/namespaces&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;constraints&amp;gt;&lt;br /&gt;  &amp;lt;constraint name="mm:colorList" type="LIST"&amp;gt;&lt;br /&gt;            &amp;lt;parameter name="allowedValues"&amp;gt;&lt;br /&gt;                &amp;lt;list&amp;gt;&lt;br /&gt;                    &amp;lt;value&amp;gt;Red&amp;lt;/value&amp;gt;&lt;br /&gt;                    &amp;lt;value&amp;gt;Orange&amp;lt;/value&amp;gt;&lt;br /&gt;                    &amp;lt;value&amp;gt;Yellow&amp;lt;/value&amp;gt;&lt;br /&gt;                    &amp;lt;value&amp;gt;Green&amp;lt;/value&amp;gt;&lt;br /&gt;                    &amp;lt;value&amp;gt;Blue&amp;lt;/value&amp;gt;&lt;br /&gt;                    &amp;lt;value&amp;gt;Indigo&amp;lt;/value&amp;gt;&lt;br /&gt;                    &amp;lt;value&amp;gt;Violet&amp;lt;/value&amp;gt;&lt;br /&gt;                &amp;lt;/list&amp;gt;&lt;br /&gt;            &amp;lt;/parameter&amp;gt;&lt;br /&gt;        &amp;lt;/constraint&amp;gt;&lt;br /&gt; &amp;lt;/constraints&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;types&amp;gt;&lt;br /&gt;  &amp;lt;!-- Enterprise-wide generic document type --&amp;gt;&lt;br /&gt;  &amp;lt;type name="mm:doc"&amp;gt;&lt;br /&gt;   &amp;lt;title&amp;gt;Minimum Custom Document&amp;lt;/title&amp;gt;&lt;br /&gt;   &amp;lt;parent&amp;gt;cm:content&amp;lt;/parent&amp;gt;&lt;br /&gt;   &amp;lt;properties&amp;gt;&lt;br /&gt;    &amp;lt;property name="mm:freeText"&amp;gt;&lt;br /&gt;     &amp;lt;type&amp;gt;d:text&amp;lt;/type&amp;gt;&lt;br /&gt;     &amp;lt;mandatory&amp;gt;false&amp;lt;/mandatory&amp;gt;&lt;br /&gt;    &amp;lt;/property&amp;gt;&lt;br /&gt;   &amp;lt;/properties&amp;gt;&lt;br /&gt;   &amp;lt;associations&amp;gt;&lt;br /&gt;    &amp;lt;association name="mm:relatedDocuments"&amp;gt;&lt;br /&gt;     &amp;lt;title&amp;gt;Related Documents&amp;lt;/title&amp;gt;&lt;br /&gt;     &amp;lt;source&amp;gt;&lt;br /&gt;      &amp;lt;mandatory&amp;gt;false&amp;lt;/mandatory&amp;gt;&lt;br /&gt;      &amp;lt;many&amp;gt;true&amp;lt;/many&amp;gt;&lt;br /&gt;     &amp;lt;/source&amp;gt;&lt;br /&gt;     &amp;lt;target&amp;gt;&lt;br /&gt;      &amp;lt;class&amp;gt;mm:doc&amp;lt;/class&amp;gt;&lt;br /&gt;      &amp;lt;mandatory&amp;gt;false&amp;lt;/mandatory&amp;gt;&lt;br /&gt;      &amp;lt;many&amp;gt;true&amp;lt;/many&amp;gt;&lt;br /&gt;     &amp;lt;/target&amp;gt;&lt;br /&gt;    &amp;lt;/association&amp;gt;&lt;br /&gt;   &amp;lt;/associations&amp;gt;&lt;br /&gt;  &amp;lt;/type&amp;gt;&lt;br /&gt; &amp;lt;/types&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;aspects&amp;gt;&lt;br /&gt;  &amp;lt;aspect name="mm:colorAble"&amp;gt;&lt;br /&gt;   &amp;lt;title&amp;gt;Rainbow Color&amp;lt;/title&amp;gt;&lt;br /&gt;   &amp;lt;properties&amp;gt;&lt;br /&gt;    &amp;lt;property name="mm:color"&amp;gt;&lt;br /&gt;     &amp;lt;type&amp;gt;d:text&amp;lt;/type&amp;gt;&lt;br /&gt;     &amp;lt;mandatory&amp;gt;true&amp;lt;/mandatory&amp;gt;&lt;br /&gt;     &amp;lt;default&amp;gt;Green&amp;lt;/default&amp;gt;&lt;br /&gt;     &amp;lt;constraints&amp;gt;&lt;br /&gt;      &amp;lt;constraint ref="mm:colorList" /&amp;gt;&lt;br /&gt;     &amp;lt;/constraints&amp;gt;&lt;br /&gt;    &amp;lt;/property&amp;gt;&lt;br /&gt;   &amp;lt;/properties&amp;gt;&lt;br /&gt;  &amp;lt;/aspect&amp;gt;&lt;br /&gt; &amp;lt;/aspects&amp;gt;&lt;br /&gt;&amp;lt;/model&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;tomcat\webapps\alfresco\WEB-INF\classes\alfresco\min-model-context.xml&lt;/b&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;?xml version='1.0' encoding='UTF-8'?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;beans&amp;gt;&lt;br /&gt;    &amp;lt;!-- Registration of new models --&amp;gt;&lt;br /&gt;    &amp;lt;bean id="minModel.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap"&amp;gt;&lt;br /&gt;        &amp;lt;property name="models"&amp;gt;&lt;br /&gt;            &amp;lt;list&amp;gt;&lt;br /&gt;                &amp;lt;value&amp;gt;alfresco/extension/model/mmModel.xml&amp;lt;/value&amp;gt;&lt;br /&gt;            &amp;lt;/list&amp;gt;&lt;br /&gt;        &amp;lt;/property&amp;gt;&lt;br /&gt;        &lt;br /&gt;        &amp;lt;property name="labels"&amp;gt;&lt;br /&gt;            &amp;lt;list&amp;gt;&lt;br /&gt;                &amp;lt;value&amp;gt;alfresco/extension/model/mmModelResourceBundle&amp;lt;/value&amp;gt;&lt;br /&gt;            &amp;lt;/list&amp;gt;&lt;br /&gt;        &amp;lt;/property&amp;gt;&lt;br /&gt;    &amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/beans&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;tomcat\webapps\alfresco\WEB-INF\classes\alfresco\extension\web-client-config-custom.xml&lt;/b&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;alfresco-config&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;!-- show related documents association on doc property sheet --&amp;gt;&lt;br /&gt; &amp;lt;config evaluator="node-type" condition="mm:doc"&amp;gt;&lt;br /&gt;  &amp;lt;property-sheet&amp;gt;&lt;br /&gt;   &amp;lt;show-association name="mm:relatedDocuments"/&amp;gt;&lt;br /&gt;   &amp;lt;show-property name="mm:freeText"/&amp;gt;&lt;br /&gt;  &amp;lt;/property-sheet&amp;gt;&lt;br /&gt; &amp;lt;/config&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;config evaluator="aspect-name" condition="mm:colorAble"&amp;gt;&lt;br /&gt;        &amp;lt;property-sheet&amp;gt;&lt;br /&gt;            &amp;lt;show-property name="mm:color" /&amp;gt;&lt;br /&gt;        &amp;lt;/property-sheet&amp;gt;&lt;br /&gt;    &amp;lt;/config&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;config evaluator="string-compare" condition="Content Wizards"&amp;gt;&lt;br /&gt;  &amp;lt;content-types&amp;gt;&lt;br /&gt;   &amp;lt;type name="mm:doc" /&amp;gt;&lt;br /&gt;  &amp;lt;/content-types&amp;gt;&lt;br /&gt; &amp;lt;/config&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;config evaluator="string-compare" condition="Action Wizards"&amp;gt;&lt;br /&gt;  &amp;lt;subtypes&amp;gt;&lt;br /&gt;   &amp;lt;type name="mm:doc" /&amp;gt;&lt;br /&gt;  &amp;lt;/subtypes&amp;gt;  &lt;br /&gt;&lt;br /&gt;  &amp;lt;!-- The list of content and/or folder types shown in the specialise-type action --&amp;gt;&lt;br /&gt;  &amp;lt;specialise-types&amp;gt;&lt;br /&gt;   &amp;lt;type name="mm:doc" /&amp;gt;&lt;br /&gt;  &amp;lt;/specialise-types&amp;gt;  &lt;br /&gt;  &lt;br /&gt;  &amp;lt;aspects&amp;gt;&lt;br /&gt;   &amp;lt;aspect name="mm:colorAble" /&amp;gt;&lt;br /&gt;  &amp;lt;/aspects&amp;gt;&lt;br /&gt; &amp;lt;/config&amp;gt; &lt;br /&gt; &lt;br /&gt; &amp;lt;config evaluator="string-compare" condition="Advanced Search"&amp;gt;&lt;br /&gt;  &amp;lt;advanced-search&amp;gt;&lt;br /&gt;   &amp;lt;content-types&amp;gt;&lt;br /&gt;    &amp;lt;type name="mm:doc" /&amp;gt;  &lt;br /&gt;   &amp;lt;/content-types&amp;gt;&lt;br /&gt;   &amp;lt;custom-properties&amp;gt;  &lt;br /&gt;    &amp;lt;meta-data aspect="mm:colorAble" property="mm:color"/&amp;gt;&lt;br /&gt;   &amp;lt;/custom-properties&amp;gt;&lt;br /&gt;  &amp;lt;/advanced-search&amp;gt;&lt;br /&gt; &amp;lt;/config&amp;gt;&lt;br /&gt;&amp;lt;/alfresco-config&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;tomcat\webapps\alfresco\WEB-INF\classes\alfresco\extension\model\mmModelResourceBundle.properties&lt;/b&gt;&lt;br /&gt;&lt;pre class="brush:js"&gt;mm_minmodel.description=Alfresco Example Minimum Domain Model&lt;br /&gt;&lt;br /&gt;mm_minmodel.type.mm_doc.title=Min Extended Content&lt;br /&gt;mm_minmodel.type.mm_doc.description=Minimum Extended Content Document&lt;br /&gt;mm_minmodel.property.mm_freeText.title=Additional Details&lt;br /&gt;mm_minmodel.property.mm_freeText.description=Place to enter more details about this document&lt;br /&gt;mm_minmodel.aspect.mm_colorAble.title=Rainbow Color&lt;br /&gt;mm_minmodel.aspect.mm_colorAble.description=Color of the rainbow this document belongs to&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The example files above define a simple "Minimum Content Model" for Alfresco.  All of these files are kept within the Alfresco repository -- within the alfresco.war file set.&lt;br /&gt;&lt;br /&gt;The next file is on the Share side and is used to define a form within Share for editing metadata specific to the custom class just defined.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;tomcat\webapps\share\WEB-INF\classes\alfresco\web-extension\web-framework-config-custom.xml&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;alfresco-config&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;config evaluator="node-type" condition="mm:doc"&amp;gt;&lt;br /&gt;    &amp;lt;forms&amp;gt;&lt;br /&gt;       &amp;lt;form&amp;gt;&lt;br /&gt;          &amp;lt;field-visibility&amp;gt;&lt;br /&gt;             &amp;lt;!-- inherited from cm:content --&amp;gt;&lt;br /&gt;             &amp;lt;show id="cm:name" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="cm:title" force="true" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="cm:description" force="true" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="mimetype" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="cm:author" force="true" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="size" for-mode="view" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="cm:creator" for-mode="view" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="cm:created" for-mode="view" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="cm:modifier" for-mode="view" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="cm:modified" for-mode="view" /&amp;gt;&lt;br /&gt;           &lt;br /&gt;             &amp;lt;!--  specific for mm:doc --&amp;gt;&lt;br /&gt;             &amp;lt;show id="mm:relatedDocuments" /&amp;gt;&lt;br /&gt;             &amp;lt;show id="mm:freeText" /&amp;gt;&lt;br /&gt;&lt;br /&gt;             &amp;lt;!--  aspect mm:colorAble --&amp;gt;             &lt;br /&gt;             &amp;lt;show id="mm:color" /&amp;gt;&lt;br /&gt;           &lt;br /&gt;          &amp;lt;/field-visibility&amp;gt;&lt;br /&gt;          &amp;lt;appearance&amp;gt;&lt;br /&gt;             &amp;lt;field id="mm:relatedDocuments" label="Related Docs"/&amp;gt;&lt;br /&gt;             &amp;lt;field id="mm:freeText" label="More Information"/&amp;gt;&lt;br /&gt;             &amp;lt;field id="mm:color" label="Color"&amp;gt;&lt;br /&gt;                &amp;lt;control template="controls/selectone.ftl"&amp;gt;&lt;br /&gt;                   &amp;lt;control-param name="options"&amp;gt;Red,Orange,Yellow,Green,Blue,Indigo,Violet&amp;lt;/control-param&amp;gt;&lt;br /&gt;                &amp;lt;/control&amp;gt;&lt;br /&gt;             &amp;lt;/field&amp;gt;&lt;br /&gt;          &amp;lt;/appearance&amp;gt;&lt;br /&gt;       &amp;lt;/form&amp;gt;&lt;br /&gt;    &amp;lt;/forms&amp;gt;&lt;br /&gt; &amp;lt;/config&amp;gt;&lt;br /&gt;&amp;lt;/alfresco-config&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;With those files in place, you can checkin a document of type mm:doc from the Alfresco Explorer client and then make it available from Alfresco Share.  Edit the metadata for the document, and select "Full Metadata Edit Page...".&lt;br /&gt;&lt;br /&gt;You should see something like this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_GhtkS9fvzlk/S3rceOcLNUI/AAAAAAAAAGo/BwU5fXd7D0I/s1600-h/metadataedit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="489" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/S3rceOcLNUI/AAAAAAAAAGo/BwU5fXd7D0I/s640/metadataedit.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The three new custom fields are now exposed on the Share edit form: &amp;nbsp;Related Docs, More Information, and Color.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-8954658374791750617?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/8954658374791750617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/02/creating-edit-forms-for-custom-types-in.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/8954658374791750617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/8954658374791750617'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/02/creating-edit-forms-for-custom-types-in.html' title='Creating Edit Forms for Custom Types in Alfresco Share'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GhtkS9fvzlk/S3rceOcLNUI/AAAAAAAAAGo/BwU5fXd7D0I/s72-c/metadataedit.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-2191260323263436150</id><published>2010-02-08T21:49:00.000-08:00</published><updated>2010-02-08T21:49:17.668-08:00</updated><title type='text'>Advanced Workflow in Alfresco Share</title><content type='html'>Alfresco Share 3.2 is shaping up to be a great development platform. &amp;nbsp;Prior to 3.1, Share's access to standard Alfresco repository capabilities were disappointingly weak. &amp;nbsp;But with the 3.2 release, many repository features have been migrated from the older Alfresco JSF client (aka the 'explorer' client) to the Share Document Library.&lt;br /&gt;&lt;br /&gt;Unfortunately, Alfresco's Advanced Workflow, the ability to create complex workflows using jBPM and to use them within Alfresco, is still not quite prime time. &amp;nbsp;There's &lt;a href="http://forums.alfresco.com/en/viewtopic.php?f=48&amp;amp;t=23254#p76057"&gt;talk &lt;/a&gt;that Advanced Workflow will be ready to ship as part of the 3.3 release of Share. &amp;nbsp;On the &lt;a href="http://wiki.alfresco.com/wiki/Workflow_on_Share"&gt;Alfresco wiki&lt;/a&gt;, a series of goals for implementing Advanced Workflow in Share are listed.&lt;br /&gt;&lt;br /&gt;But... &amp;nbsp;the current state of Alfresco 3.2 Share makes it look like a full integration of Advanced Workflow with Share may not be that far off. &amp;nbsp;One promising sign is that two built-in Advanced Workflows already ship with Share 3.2: "Adhoc Tasks" and "Review and Approve". &amp;nbsp;The negative is that only these two workflows are available -- and they are hardcoded. Also assigning a document to one of those workflows throws some errors at the server.&lt;br /&gt;&lt;br /&gt;We're anxious to see general Advanced Workflow working in Share, so I decided to investigate a bit to see what could be done to make a general workflow work in Share 3.2.&lt;br /&gt;&lt;br /&gt;As a starting point, I adopted the workflow example code from the Alfresco wiki that describes an Approve/Reject &lt;a href="http://wiki.alfresco.com/wiki/WorkflowSample_Lifecycle"&gt;Lifecycle workflow&lt;/a&gt;. &amp;nbsp;The flow for the workflow looks as follows:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_GhtkS9fvzlk/S3C_vI1kFtI/AAAAAAAAAE4/1C8Vz0eDIhI/s1600-h/Lifecycle.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="346" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/S3C_vI1kFtI/AAAAAAAAAE4/1C8Vz0eDIhI/s400/Lifecycle.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;To install the new workflow for use within Share, copy the following files with contents as defined on the wiki into the exploded alfresco repository file area:&lt;br /&gt;alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\extension\&lt;i&gt;lifecycle-workflow-context.xml&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\extension\workflows\lifecycle&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;i&gt;lifecycle_processdefinition.xml&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;lifecycle-messages.properties&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;lifecycleModel.xml&lt;/i&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In the lifecycle_processdefinition.xml file, you need to make sure that the use of the &amp;lt; ("less than") operator in the embedded Javascript is replaced with &amp;lt;. &amp;nbsp;For example, on the line:&lt;/div&gt;&lt;blockquote&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (var i = 0; i &lt;b&gt;&amp;lt;&lt;/b&gt; bpm_package.children.length; i++)&lt;/blockquote&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;To make the workflow available within Share, add a line to define the lifecycleapproval workflow to the file&lt;br /&gt;alfresco\tomcat\webaps\share\WEB-INF\classes\alfresco\site-webscripts\org\alfresco\modules\documentlibrary\workflow.get.html.ftl:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_GhtkS9fvzlk/S3DFaj1RtqI/AAAAAAAAAFA/_qHrCIKPmD0/s1600-h/insertline.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="161" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/S3DFaj1RtqI/AAAAAAAAAFA/_qHrCIKPmD0/s640/insertline.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The name of the workflow "wfl:lifecycleapproval" corresponds to the name of the process definition defined in the file &amp;nbsp;lifecycle_processdefinition.xml:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_GhtkS9fvzlk/S3DkxyOb_II/AAAAAAAAAFI/brNyb8tNuL8/s1600-h/lifecycle1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="130" src="http://1.bp.blogspot.com/_GhtkS9fvzlk/S3DkxyOb_II/AAAAAAAAAFI/brNyb8tNuL8/s640/lifecycle1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;With these files in place, the web application server can be restarted.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Then by going to the workflow console in the Alfresco repository application, you can see that the workflow has been defined.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The workflow console is located at this URL:&amp;nbsp;&lt;a href="http://localhost:8080/alfresco/faces/jsp/admin/workflow-console.jsp"&gt;http://localhost:8080/alfresco/faces/jsp/admin/workflow-console.jsp&lt;/a&gt;. &amp;nbsp;And the defined workflow definitions can be queried. &amp;nbsp;In this example, the new workflowid is jbpm$8:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_GhtkS9fvzlk/S3DnNESV_cI/AAAAAAAAAFQ/0iqRoaKOQtE/s1600-h/workflowconsole.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="353" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/S3DnNESV_cI/AAAAAAAAAFQ/0iqRoaKOQtE/s640/workflowconsole.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The new workflow is also now visible from the Share Document Library. &amp;nbsp;When a workflow is selected to be assigned to a document from within Share, the following dialog can now be seen with a "Lifecyle Approval" option now available (with spelling typo):&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_GhtkS9fvzlk/S3DrgU0jWII/AAAAAAAAAFg/BJ8lVQ7KS4Y/s1600-h/lifecycledialog.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="576" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/S3DrgU0jWII/AAAAAAAAAFg/BJ8lVQ7KS4Y/s640/lifecycledialog.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;That's all good. &amp;nbsp;Now, by clicking on "Assign Workflow", the workflow will be assigned to the document. &amp;nbsp;Now, after logging into Share as the workflow assignee, the following can be seen in the Task List:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_GhtkS9fvzlk/S3Dtdlw2xcI/AAAAAAAAAFo/zO4qX7Y_ms0/s1600-h/MyTasks.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="266" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/S3Dtdlw2xcI/AAAAAAAAAFo/zO4qX7Y_ms0/s400/MyTasks.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;From the workflow console screen, you can check the status of the newly created instance of the workflow. &amp;nbsp;First, specify which workflow definition id you will be querying.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_GhtkS9fvzlk/S3DuVrsmBZI/AAAAAAAAAFw/T18qpNCOSw8/s1600-h/workflowconsole2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="243" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/S3DuVrsmBZI/AAAAAAAAAFw/T18qpNCOSw8/s640/workflowconsole2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;And then query the workflow id of the current instance of the workflow.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_GhtkS9fvzlk/S3DvSXsj_BI/AAAAAAAAAF4/1M6PNcgcr6k/s1600-h/workflowconsole3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="140" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/S3DvSXsj_BI/AAAAAAAAAF4/1M6PNcgcr6k/s640/workflowconsole3.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The workflow id of the workflow instance is jbpm$11.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_GhtkS9fvzlk/S3DwGkx2sfI/AAAAAAAAAGA/DC9Dql78Lig/s1600-h/workflowconsole4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="218" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/S3DwGkx2sfI/AAAAAAAAAGA/DC9Dql78Lig/s640/workflowconsole4.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;And the path id for this workflow instance is jbpm$11-@.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The current task for the path is as follows:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_GhtkS9fvzlk/S3DxZHEVcRI/AAAAAAAAAGI/kyvK8L2amoY/s1600-h/workflowconsole5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="228" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/S3DxZHEVcRI/AAAAAAAAAGI/kyvK8L2amoY/s640/workflowconsole5.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_GhtkS9fvzlk/S3DyiD3DI0I/AAAAAAAAAGQ/TzJsbOoiezU/s1600-h/workflowconsole6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="460" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/S3DyiD3DI0I/AAAAAAAAAGQ/TzJsbOoiezU/s640/workflowconsole6.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Going back into the Share task window, after approving the review/lifecycle item and then again checking the properties for the task in the workflow console, the following can be seen:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_GhtkS9fvzlk/S3DzXSMSvmI/AAAAAAAAAGY/mDMSG85erGI/s1600-h/workflowconsole7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="454" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/S3DzXSMSvmI/AAAAAAAAAGY/mDMSG85erGI/s640/workflowconsole7.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So it looks like the workflow is working. &amp;nbsp;But a glance at the tomcat console shows that there are errors being reported each time a workflow is assigned to a document. &amp;nbsp;With a little bit of investigation, the problem can be traced to the file alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\templates\webscripts\org\alfresco\slingshot\documentlibrary\action\assign-workflow.post.json.ftl.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The variable 'results' is entering the Freemarker macro as undefined. &amp;nbsp;I'm not sure how serious a problem this is, but making the following change to this file avoids the error.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_GhtkS9fvzlk/S3D1u5yXbwI/AAAAAAAAAGg/Yw_gesSK0MA/s1600-h/assignworkflow.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="57" src="http://1.bp.blogspot.com/_GhtkS9fvzlk/S3D1u5yXbwI/AAAAAAAAAGg/Yw_gesSK0MA/s400/assignworkflow.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;This test seems to indicate that while Workflow within Alfresco Share in the 3.2 release is not officially ready, it may be close enough for at least creating simple workflows like the one described here.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-2191260323263436150?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/2191260323263436150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/02/advanced-workflow-in-alfresco-share.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/2191260323263436150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/2191260323263436150'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/02/advanced-workflow-in-alfresco-share.html' title='Advanced Workflow in Alfresco Share'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_GhtkS9fvzlk/S3C_vI1kFtI/AAAAAAAAAE4/1C8Vz0eDIhI/s72-c/Lifecycle.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-6559783207984765058</id><published>2010-02-02T21:58:00.000-08:00</published><updated>2010-02-02T22:02:08.548-08:00</updated><title type='text'>Alfresco WCM Roadmap</title><content type='html'>The Alfresco tech team for&amp;nbsp;Web Content Management (WCM) made a &lt;a href="http://www2.alfresco.com/e/1234/co-wcm-roadmap-webinar-2-feb10/GDJAG/169145234"&gt;presentation&lt;/a&gt; on the Alfresco WCM 2010 Roadmap.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Ben Hagan - &lt;i&gt;WCM Product Manager&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Brian Remmington - &lt;i&gt;WCM Architect&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Here are some notes from the presentation.&lt;br /&gt;&lt;br /&gt;Alfresco 3.2 included a number of improvements in the area of WCM:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- Better page previews&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- Better page rendering&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- Better web page authoring in a clustered environment&lt;br /&gt;&lt;br /&gt;Upcoming Alfresco &lt;i&gt;WCM&lt;/i&gt; Release Schedule&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="background-color: #ffe599;"&gt;February 15th&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="background-color: #ffe599;"&gt; - 3.2r release&lt;/span&gt; &amp;nbsp;[Records Management plus some new WCM functionality]&lt;br /&gt;&lt;b&gt;March, 2010&amp;nbsp;&lt;/b&gt;- 3.3 Community Release&lt;br /&gt;&lt;b&gt;May, 2010&amp;nbsp;&lt;/b&gt;- 3.3 Enterprise Release&lt;br /&gt;&lt;br /&gt;&lt;b style="background-color: #eeeeee;"&gt;Overall Vision and goals for Alfresco WCM&lt;/b&gt;&lt;br /&gt;&lt;div style="background-color: #eeeeee; padding-left: 18px;"&gt;Common Content Services is a long-term goal. &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; - Access to WCM and standard Alfresco DM should be consistent&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ie., unification of the two repositories&lt;br /&gt;&lt;br /&gt;Web Content Production&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; - Be able to quickly edit and modify pages 'in-context'&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; - Better tools for managing the web page presentation&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; - Website production tools&lt;br /&gt;&lt;br /&gt;Infrastructure/Platform improvements&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; - Use high productivity developer tools like Spring Surf&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; - Modular, pluggable, extensible,...&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; - Standards like CMIS and REST&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; - Built on fast, scalable repository&lt;/div&gt;&lt;br /&gt;&lt;b&gt;All Releases&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- Performance Optimization&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- Changes to improve scalability&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- Removal of use of Hibernate for more control&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alfresco 3.2r &amp;nbsp;[February 15th]&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; - Deployment of WCM AVM content to standard Alfresco DM repository&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; This will enable Alfresco WCM to take advantage of standard Alfresco DM capabilities&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;eg. &amp;nbsp;Transformations, clustering, content rules&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alfresco 3.3 &amp;nbsp;[May 2010]&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- WCM Content Rendering Service API. &amp;nbsp;[Uses DM content, not AVM content]&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Render/generate a new content renditions [eg., different format, sizes, cropped, ...]&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Freemarker scripting can be used to specify the rendition operations&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; New content is intended for use on the web page.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Can chain renditions&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Maintains relation between the new rendition and the source content&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Renditions are searchable and can have access permissions&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- Alfresco Web Editor (AWE)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Next-generation of Web Studio &amp;nbsp;[Web Studio is now in springsurf. &amp;nbsp;How is it related?...]&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Makes use of work done with Surf and Alfresco Forms Engine&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Compatible with Spring Surf&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Allow in-context editing&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Web Editor toolbar is extensible and pluggable using Javascript&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Includes a Template Editor&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Can design JSP / tag library pages. &amp;nbsp;Eventually can design other languages, like Freemarker&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- Alfresco to Alfresco Transfer - DM Deployment&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;- Enable DM Content modeling for WCM&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Associations&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Aspects&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Properties&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; - 3.3 release will be concurrent with the SpringSurf 1.0.0 Final release [May 2010]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alfresco 3.4 or 4.x&lt;/b&gt; &amp;nbsp;[No Date has been set]&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; - WCM integration with Alfresco Share -- "Web Producer"&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Create Share sites&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Tools focused around WCM&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Content Library&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Template management&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Metadata management&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; User roles and content permissions&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; - Ability to deploy to other endpoints&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; File System, Database, ...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alfresco 4.x&lt;/b&gt; &amp;nbsp;[No Date has been set]&lt;br /&gt;&amp;nbsp;&amp;nbsp; - Work Packages [sounds like AVM sandboxes will be deprecated]&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-style-span" style="background-color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;Currently still being designed -- soliciting feedback&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Collaborative/shared workspace [AVM sandbox is for a single user only]&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;People can be invited to work on 'an activity'&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'Activities' are isolated, can happen in parallel, and get merged when ready&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;The complete Work Package can be versioned&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-6559783207984765058?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/6559783207984765058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/02/alfresco-wcm-roadmap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/6559783207984765058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/6559783207984765058'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/02/alfresco-wcm-roadmap.html' title='Alfresco WCM Roadmap'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-8141829869056483999</id><published>2010-01-29T17:56:00.000-08:00</published><updated>2010-01-29T17:56:09.152-08:00</updated><title type='text'>What's new in Alfresco Enterprise 3.2?</title><content type='html'>Alfresco 3.2 is out. &amp;nbsp;In general, I'm very pleased with this release.&lt;br /&gt;In particular, Alfresco Share is really shaping up and is sure to have some very interesting implementations.&lt;br /&gt;Here is a rundown on some of the highlights with a little bit of commentary on this new release.&lt;br /&gt;There's really a lot there. &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;b&gt;High Availablity, Scalability and Improved Administration&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;(&lt;span class="Apple-style-span" style="color: #cc0000;"&gt;Available in the&amp;nbsp;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: #cc0000;"&gt;Enterprise version&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #cc0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: #cc0000;"&gt;only&lt;/span&gt;&lt;/i&gt;)&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/b&gt;Alfresco is being used for some very large systems. &amp;nbsp;[As an aside. &amp;nbsp;Alfresco has been benchmarked to have 100 million objects, and this year there is talk that they will try to do a benchmark with one billion objects. &amp;nbsp;That's pretty big.] &amp;nbsp;With this release Alfresco introduces tools to ease the administration of production systems, especially useful when considering large production systems. &amp;nbsp;And much of the new magic is made possible with something called &lt;a href="http://wiki.alfresco.com/wiki/JMX"&gt;JMX &lt;/a&gt;(&lt;a href="http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/"&gt;Java Management EXtensions&lt;/a&gt;). &amp;nbsp;JMX is a Java technology that is helps you dynamically monitor and manage Web-based systems.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Alfresco with JMX is pretty cool because, with it, you can probe the inner workings of Alfresco while it is running and view the status on a dashboard. &amp;nbsp;You can reconfigure things without ever restarting the server. &amp;nbsp;You can see things like server memory usage and active database connections. &amp;nbsp;And you can also see the configuration and workings of Alfresco '&lt;a href="http://wiki.alfresco.com/wiki/Alfresco_Subsystems"&gt;subsystems&lt;/a&gt;'.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Alfresco is modular and consists of subsystem components. &amp;nbsp;Subsystems include things like &lt;a href="http://wiki.alfresco.com/wiki/Alfresco_Authentication_Subsystems"&gt;Authenticaion&lt;/a&gt;, the User Directory, the &lt;a href="http://wiki.alfresco.com/wiki/IMAP"&gt;File Server&lt;/a&gt;, Image transformations, the &lt;a href="http://wiki.alfresco.com/wiki/IMAP"&gt;IMAP &lt;/a&gt;server, and others. &amp;nbsp;From a JMX console you can now browse through Alfresco subsystems and &lt;a href="http://wiki.alfresco.com/wiki/Alfresco_Subsystems#Configuring_Subsystems"&gt;change &lt;/a&gt;any of the configuration parameters.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;What are the benefits? &amp;nbsp;System administration with JMX becomes much easier. &amp;nbsp;There are fewer downtimes -- lower maintenance costs. &amp;nbsp;It lets you monitor your system and look for any bottlenecks --easier troubleshooting. &amp;nbsp;It simplifies the management of error and log files. &amp;nbsp;It is cluster-aware -- make a change while you are live and the change will propagate out throughout your cluster.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Alfresco's implementation is 100% compliant with 'standard' JMX. &amp;nbsp;That means that you can use any JMX client as your dashboard diagnostic tool. &amp;nbsp;That includes JMX clients like &lt;a href="http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html"&gt;JConsole&lt;/a&gt;, jManage, or any other.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_GhtkS9fvzlk/S2OB2tXrSrI/AAAAAAAAAEw/Z3Kqze-sesI/s1600-h/JMXinAlfresco.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_GhtkS9fvzlk/S2OB2tXrSrI/AAAAAAAAAEw/Z3Kqze-sesI/s320/JMXinAlfresco.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; A partner of Alfresco,&amp;nbsp;&lt;a href="http://blogs.alfresco.com/wp/luissala/2009/12/17/elastic-alfresco-with-rightscale/"&gt;RightScale,&amp;nbsp;&lt;/a&gt;was able to use Alfresco JMX and combine it with Amazon EC2 infrastructure to provide a smart-sizing version of Alfresco running in the cloud that lets you scale up or down your Alfresco server resources as the demand calls for it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Storage Policies or Lifecycle Management&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;(&lt;span class="Apple-style-span" style="color: #cc0000;"&gt;Available in the&amp;nbsp;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: #cc0000;"&gt;Enterprise version&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #cc0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: #cc0000;"&gt;only&lt;/span&gt;&lt;/i&gt;)&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp; Another great addition that is only in the Enterprise version is the ability to specify &lt;a href="http://wiki.alfresco.com/wiki/Content_Store_Selector"&gt;Storage Policies&lt;/a&gt;. &amp;nbsp;This basically lets you control what media you will store/archive selected content to. &amp;nbsp;This ties in with the concept of a 'lifetime' associated with content. &amp;nbsp;Some content may be highly relevant today, but a year from now will be considered stale -- you don't want to get rid of it, but then you'd prefer to store it on a cheaper slower-access disk.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp; The idea is that you might use SSD drives for your most important information, and based on business policies that you control, gradually move the data to &lt;a href="http://www.linux.com/news/hardware/peripherals/8223-ssd-vs-sata-raid-a-performance-benchmark-"&gt;cheaper &lt;/a&gt;drives like FC or SATA as it becomes less important. &amp;nbsp;This way you can more cost effectively manage the storage of your data. &amp;nbsp;This concept of Information Lifecycle Management (ILM) is something that EMC has &lt;a href="http://webobjects.cdw.com/webobjects/docs/PDFs/Managing_Data_Lifecycle.pdf"&gt;talked &lt;/a&gt;about for some time.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;New Deployment Options&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;The 'original' Alfresco is deployed like traditional software, 'on premise'. &amp;nbsp;You buy a server and install the software on it to run on your intranet. &lt;br /&gt;&lt;br /&gt;In 3.1 &amp;nbsp;Alfresco enabled their explorer client application to run as a &lt;a href="http://wiki.alfresco.com/wiki/MT#What_is_Alfresco_Multi-tenancy.3F"&gt;multi-tenanted&lt;/a&gt; solution. &amp;nbsp;With this approach, you can install Alfresco one time and partition the installation so that content belonging to one group of people can be kept separate from another group. &amp;nbsp;Now, with the 3.2 release, Alfresco Share can be configured as a multi-tenanted application also.&lt;br /&gt;&lt;br /&gt;With the 3.2 release Alfresco is also pointing out that Alfresco can be easily set up to run in the 'cloud'. &amp;nbsp;I don't think that there is too much new here. &amp;nbsp;People at Alfresco have talked about this as an option for some time, but perhaps with the rise of cloud computing they want to point it out again. &amp;nbsp;As mentioned above, their partnership with companies like &lt;a href="http://www.rightscale.com/"&gt;RightScale &lt;/a&gt;show that running in the cloud is now easy to do.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;b&gt;Improvement in Alfresco Share&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Alfresco has been fairly open with the fact that their 'Explorer' client which is based on JSF technology is no longer being actively developed. &amp;nbsp;While JSF is still around and actively used at a lot of places, it is a 'heavier' technology compared to a lot of whiz-bang Web 2.0 stuff. &amp;nbsp;Alfresco is now investing development cycles in Alfresco Share.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Early versions of Alfresco Share lacked some basic repository capabilities that the JSF client had and which you would expect to find in a content management system. &amp;nbsp;The focus was to start building out team collaboration capabilities, like multiple project site areas, wikis, blogs, and calendars. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; With the 3.2 release a lot of the document management capabilities are starting to show up in Share's 'Document Library' area. &amp;nbsp;Things like changing the type of a piece of content, adding or removing an aspect, or assigning a workflow are now available. &amp;nbsp;The document library capabilities in Share out-of-the box are now pretty slick. &amp;nbsp;Alfresco can read property data from common file type headers and automatically populate content metadata.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Share's built-in Flash viewer is also great. &amp;nbsp;It only works with some common file types like PDF, MS Office and some common image types, but it can convert the file to Flash on the server and allow it to be viewed on the client. &amp;nbsp;It lets you zoom and page through the document. &amp;nbsp;It looks great and it seems pretty speedy. &amp;nbsp;Since the file is converted on demand on the server, the whole file need not be transmitted to the client before you can open and view it. &amp;nbsp;And you don't need the native authoring application. &amp;nbsp;Hopefully there will be some more file types added to the list of the currently supported ones.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Along the lines of viewing, Share 3.2 also includes a new smart dashlet that has an image 'lightbox' viewing technique that lets you visually navigate across your image content. &amp;nbsp;You can see thumbnail images on a grid, scan through them and then select one to expand that opens with a lightbox effect on top of the thumbnail grid.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Speaking of smarter dashlets, the new Share also allows user dashlet preferences and size settings to be remembered. &amp;nbsp;Set them, log out, log back in and all your settings are still there. &amp;nbsp;Maybe that behavior is something you would have expected all along, but it works now.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Share now takes advantage of a new forms system in Alfresco. &amp;nbsp;Change your metadata and content type and forms will automatically reconfigure to reflect those changes.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Share sites can now be public or moderated. &amp;nbsp;Users need to first apply to a moderated Share site and be accepted before they can become contributors.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Share also now includes some Administrative capabilities. &amp;nbsp;Early versions of Share were a bit awkward since they relied on having to administer users and groups from the JSF explorer client. &amp;nbsp;The 3.2 release includes administration of both users and groups from within Share. &amp;nbsp;And the design of the Share Administration module is pluggable. &amp;nbsp;Have other custom administration configurations that you need to manage? -- Create a component that can plug into the Share administration console.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Since Share is about Collaboration, you often would like to bring collaborators onto a project that are external to your organization, maybe partners or vendors. &amp;nbsp;This new version of Share will let you do that. &amp;nbsp;And Alfresco has done a lot of work in improving the scalability of Share, claiming that it will support scalability into the tens of thousands of users.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; And while not strictly part of Share, there has been a lot of changes going on with Surf, the web development framework that Share is built with. &amp;nbsp;Alfresco Surf has been donated to an Apache incubation project and will jointly be overseen by the people from &lt;a href="http://www.springsource.com/"&gt;SpringSource&lt;/a&gt;, the developers of the popular Spring framework. &amp;nbsp;The project is called &lt;a href="http://www.springsurf.org/"&gt;SpringSurf&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;Email Archive&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/b&gt;The 3.2 release also adds some interesting generic support for connecting with email systems. &amp;nbsp;Alfresco is calling it their 'Virtualized IMAP support'. &amp;nbsp;(IMAP stands for Internet Message Access Protocol. Like POP, it lets you access your email on the email server.)&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp;&amp;nbsp; The IMAP support means that any email client can become a client of Alfresco. &amp;nbsp;Basically Alfresco looks like an email server. &amp;nbsp;You will be able to see the Alfresco folder hierarchy from within the email client you are using. &amp;nbsp;This means that you can easily drag and drop emails from your inbox directly into folders within Alfresco.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;When used with Share this means that you no longer have to forward emails to project members. &amp;nbsp;Just save them directly to the Share document library for the project site. &amp;nbsp;Since it is based on the IMAP standard, no plugin or extra client install is required for this to work.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5015.2 Records Management&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; This is a big announcement, and actually it was removed from the 3.2 release, so including it here isn't quite right. &amp;nbsp;It is now scheduled for release near the end of February as part of an Enterprise release being dubbed 3.2.1. &amp;nbsp;But anyway, it is a big announcement, so I'l include some information here.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; In the fall of 2009, the Alfresco Share 3.2 Community version of the software was certified for &lt;a href="http://jitc.fhu.disa.mil/recmgt/"&gt;5015.2 Records Management compliance&lt;/a&gt;. &amp;nbsp;This will allow Alfresco to be used by federal government agencies for management of their records. &amp;nbsp;It is based on a specification created by the Department of Defense. &amp;nbsp;There are only a small number of products and vendors that have been able to get certified, and Alfresco is the first Open Source solution. &amp;nbsp;Clearly Alfresco worked a lot on this, and if you are looking for an RM solution, I think you'll like it. &amp;nbsp;Here's a video &lt;a href="http://blogs.alfresco.com/wp/democast/2010/01/20/demo-alfresco-records-management-solution"&gt;demo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Records management is important for companies to achieve goals related to governance, retention and compliance. &amp;nbsp;Alfresco's ultimate goal is for the Alfresco Records Management solution to be fully CMIS-enabled.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Web Content Management&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Web Content Management (&lt;a href="http://wiki.alfresco.com/wiki/Web_Content_Management"&gt;WCM&lt;/a&gt;) also saw some changes with the 3.2 release, although there has been some talk that some major restructuring around WCM may be coming soon. &amp;nbsp;Currently the Alfresco WCM and DM repository stores are structured differently, and there is talk about 'unification' of the two.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; The 3.2 release saw some improvements in how a web page can be previewed and also in how it is rendered. &amp;nbsp;There were changes that now allow web content authoring to happen more easily in a clustered environment.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; And there were some improvements that let Alfresco WCM interact better with 'fast delivery channel' mechanisms and services like those of Akamai.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For more information about 3.2 features, check out the &lt;a href="http://www.alfresco.com/products/editions/enterprise/3-2/"&gt;Alfresco 3.2 Enterprise page&lt;/a&gt;&amp;nbsp;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-8141829869056483999?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/8141829869056483999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/01/whats-new-in-alfresco-enterprise-32.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/8141829869056483999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/8141829869056483999'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/01/whats-new-in-alfresco-enterprise-32.html' title='What&apos;s new in Alfresco Enterprise 3.2?'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_GhtkS9fvzlk/S2OB2tXrSrI/AAAAAAAAAEw/Z3Kqze-sesI/s72-c/JMXinAlfresco.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-2146604028046879794</id><published>2010-01-28T15:54:00.000-08:00</published><updated>2010-01-28T16:03:56.454-08:00</updated><title type='text'>Alfresco Moves to LGPL Licensing for the Community Version</title><content type='html'>"Big News!" says Nancy Garrity, Director of the Alfresco Community. &amp;nbsp;And it is. &amp;nbsp;Yesterday John Newton, CTO and Chairman of Alfresco, &lt;a href="http://newton.typepad.com/content/2010/01/a-shift-in-alfresco-community-license-to-lgpl.html"&gt;announced &lt;/a&gt;plans to switch the license used by the Alfresco Community version from &lt;a href="http://www.gnu.org/licenses/gpl.html"&gt;GPL &lt;/a&gt;to &lt;a href="http://www.gnu.org/copyleft/lesser.html"&gt;LGPL&lt;/a&gt;. &amp;nbsp;The change is to go into effect for the Alfresco 3.3 release.&lt;br /&gt;&lt;br /&gt;(Note that there is some information about licensing presented here, but the caveat is that this is not legal advice. &amp;nbsp;Always be sure to consult with a lawyer when doing anything related to licensing.)&lt;br /&gt;&lt;br /&gt;Also remember that the Enterprise version of Alfresco comes with a standard commercial license. &amp;nbsp;Open Source licensing is used only with the Community version. &lt;br /&gt;&lt;br /&gt;Open Source licensing does tend to be confusing... &amp;nbsp;Alfresco &lt;a href="http://www.internetnews.com/dev-news/article.php/3661711"&gt;changed Open Source licenses&lt;/a&gt; once before, from Mozilla Public License to GPL in February 2007. &amp;nbsp;At that time, an InternetNews.com article wrote "There are many companies that are afraid of the GPL, Alfresco isn't one of them." &amp;nbsp;On the current &lt;a href="http://www.alfresco.com/legal/licensing/faq/#faq3"&gt;legal FAQ&lt;/a&gt; page on the Alfresco site, Alfresco describes the reasons for why they originally moved to GPL. &lt;br /&gt;&lt;br /&gt;When Alfresco did move to GPL, version 3 of GPL had not yet been finalized, so Alfresco explicitly called out GPL version 2 when referencing the license in Alfresco code, unsure of what conditions would be included in version 3. &amp;nbsp;Alfresco source code files now say "version 2&amp;nbsp;of the License, or (at your option) any later version." &amp;nbsp;(Alfresco has also considered some complications around trying to combine a GPL-licensed piece of software with other Open Source licenses, and Alfresco has some &lt;a href="http://www.alfresco.com/legal/licensing/floss_exception/"&gt;'exception' language&lt;/a&gt;&amp;nbsp;that describes that.)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;First, just what are the differences between GPL and LGPL? &lt;/i&gt;&lt;br /&gt;Well, both licenses give you complete access to the source code and the ability to build working software.&lt;br /&gt;&lt;br /&gt;The GPL license allows you to use, redistribute and change software, but you're then required to make the source code available to users of the new software, and those users can in turn redistribute and modify the software subject to GPL. &amp;nbsp;For some commercial software vendors and even at companies where software is being developed in-house, GPL is considered a bit toxic and people avoid it at all costs to make sure that their commercial or proprietary code will not come into contact with GPL and the possibility that their source code would need to be released.&lt;br /&gt;&lt;br /&gt;LGPL is similar to GPL but differs in that it allows LGPL software to be treated as a blackbox or as a self-contained library. &amp;nbsp;It allows you to cordon off a certain set of code as LGPL. &amp;nbsp;If you change the inner workings of the LGPL piece, then you're pretty much bound to standard GPL and will need to contribute back any changes you make to the code. &amp;nbsp;The difference comes when there are software pieces that integrate with LGPL and that are outside the scope and code boundaries of the LGPL. &amp;nbsp;These other pieces are not bound to the same conditions as the LGPL piece. &amp;nbsp;Because of that, LGPL is sometimes considered to be a bit more friendly, at least to commercial developers.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Second, what will the change enable Alfresco to do?&lt;/i&gt; &lt;br /&gt;As John Newton wrote: "What the LGPL license provides over GPL is the ability to link in the Alfresco repository without affecting proprietary software that links it." &lt;br /&gt;&lt;br /&gt;John is a strong promoter of the CMIS (soon-to-be) standard. &amp;nbsp;CMIS will enable many different applications and repositories to interact, and an LGPL license will make people more willingly consider combining Alfresco in solutions composed of a variety of software components. &amp;nbsp; John wrote:&lt;br /&gt;&lt;blockquote&gt;"We do this in the spirit of making Alfresco available as a CMIS platform and a general ECM platform to build content applications without inhibiting your business opportunities. What we hope is that your applications will build demand for Alfresco services from Alfresco Software, particularly in larger enterprise environments."&lt;br /&gt;&lt;/blockquote&gt;I think that this move to looser licensing terms should further encourage activity around the Alfresco ECM platform, and that, of course, is good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-2146604028046879794?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/2146604028046879794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/01/alfresco-moves-to-lgpl-licensing-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/2146604028046879794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/2146604028046879794'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/01/alfresco-moves-to-lgpl-licensing-for.html' title='Alfresco Moves to LGPL Licensing for the Community Version'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-2205234072914788298</id><published>2010-01-25T13:13:00.000-08:00</published><updated>2010-01-25T13:16:14.528-08:00</updated><title type='text'>Resources for Getting Started with Alfresco Web Scripts</title><content type='html'>If you're going to be doing any development with Alfresco, you'll find that at the heart of much of the development are Web Scripts. &amp;nbsp;Alfresco calls their &lt;a href="http://wiki.alfresco.com/wiki/Web_Scripts"&gt;Web Script&lt;/a&gt; technology "agile script-driven &lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;MVC&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;Web Scripts enable very quick web application development. &amp;nbsp;Instead of a single monolithic system, Web Scripts use a very focused light-weight approach for building components that can be combined and reused.&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_GhtkS9fvzlk/S13t_C3ZL4I/AAAAAAAAAEo/D-ykSPi2dsk/s1600-h/WebScriptStack.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;i&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/_GhtkS9fvzlk/S13t_C3ZL4I/AAAAAAAAAEo/D-ykSPi2dsk/s200/WebScriptStack.png" width="136" /&gt;&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;Alfresco has two types of Web Scripts:&lt;/b&gt;&lt;i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Data Web Scripts&lt;br /&gt;&lt;span style="font-style: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; - Based on &lt;/span&gt;&lt;/i&gt;&lt;a href="http://www.xfront.com/REST-Web-Services.html"&gt;RESTful URLs&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; - Can return structured data as XML, JSON, or CSV&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Presentation Web Scripts&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; -&lt;/i&gt; Renders the UI&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; - Can call data web scripts&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;There are three components to a Web Script:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Descriptor file&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Controller file &amp;nbsp;(Javascript makes it easy. &amp;nbsp;&lt;a href="http://wiki.alfresco.com/wiki/Java-backed_Web_Scripts_Samples"&gt;Java &lt;/a&gt;is more capable).&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;- View file &amp;nbsp;(Typically uses &lt;a href="http://freemarker.org/docs/index.html"&gt;Freemarker&lt;/a&gt;, but can use things like XSLT and XSL-FO)&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;Alfresco has dashboards to see which Web Scripts are available:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;eg., &amp;nbsp;http://localhost:8080/alfresco/service &amp;nbsp;or&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; http://localhost:8080/share/service&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Debugging Web Scripts&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Set log4j.logger.org.alfresco.repo.jscript to DEBUG &amp;nbsp;under WEB-INF/classes/log4j.properties&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; logger.log will write to catalina.out&lt;br /&gt;&lt;br /&gt;Other Resources:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.myplick.com/view/368hz0IQ3T3/Webscripts-in-an-Alfresco-REST-Architecture"&gt;Alfresco Webinar on Web Scripts&lt;/a&gt;. &amp;nbsp;A high-level overview.&lt;br /&gt;&lt;a href="http://files.meetup.com/511466/Alfresco_WebScripts.pdf"&gt;Alfresco Web Scripts&lt;/a&gt;&amp;nbsp;-- PDF Document by Alfresco/LifeRay. &amp;nbsp;A bit light on specifics, but great graphics.&lt;br /&gt;&lt;a href="http://wiki.alfresco.com/wiki/Web_Scripts"&gt;Alfresco Web Scripts Wiki page&lt;/a&gt;. &amp;nbsp;A good place to get started.&lt;br /&gt;&lt;a href="http://wiki.alfresco.com/wiki/Web_Scripts_Examples#File_Upload"&gt;Web Script Examples Alfresco Wiki page.&lt;/a&gt; &amp;nbsp;Large number and variety of cookbook examples.&lt;br /&gt;&lt;a href="http://www.amazon.com/Alfresco-Developer-Guide-Jeff-Potts/dp/1847193110/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1264448323&amp;amp;sr=8-1"&gt;Alfresco Developer Guide by Jeff Potts&lt;/a&gt;. &amp;nbsp;Chapter 6, 'Exposing Content through RESTful APIs with Web Scripts'. &amp;nbsp;Great resource. &amp;nbsp;A similar version of this chapter is available &lt;a href="http://ecmarchitect.com/images/articles/alfresco-webscripts/web-script-article.pdf"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;a href="http://www.optaros.com/blogs/keeping-your-alfresco-web-scripts-dry"&gt;Best Practices and DRY&lt;/a&gt;. &amp;nbsp;Break up Web Script files and use 'import' and configuration files.&lt;br /&gt;&lt;a href="http://drquyong.com/myblog/?p=49"&gt;Using 'Remote' in Web Scripts&lt;/a&gt;. &amp;nbsp;Lets Alfresco Share Web Scripts call into Alfresco repository and external services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-2205234072914788298?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/2205234072914788298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/01/resources-for-getting-started-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/2205234072914788298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/2205234072914788298'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/01/resources-for-getting-started-with.html' title='Resources for Getting Started with Alfresco Web Scripts'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GhtkS9fvzlk/S13t_C3ZL4I/AAAAAAAAAEo/D-ykSPi2dsk/s72-c/WebScriptStack.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-6320256251544427667</id><published>2010-01-23T13:28:00.000-08:00</published><updated>2010-02-16T08:48:23.743-08:00</updated><title type='text'>Alfresco Turns Five</title><content type='html'>Birthday greetings go out to Alfresco this month.&amp;nbsp; The Open-Source ECM vendor is celebrating its five year anniversary.&amp;nbsp; Over just five years Alfresco has managed to put together a next-generation ECM product that competes well against traditional vendors like EMC/Documentum, IBM/Filenet, and even Microsoft/Sharepoint.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_GhtkS9fvzlk/S1tqA7yBVqI/AAAAAAAAAEg/7NhKcRm5mY4/s1600-h/HappyBirthday.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_GhtkS9fvzlk/S1tqA7yBVqI/AAAAAAAAAEg/7NhKcRm5mY4/s320/HappyBirthday.png" /&gt;&lt;/a&gt;&lt;/div&gt;This week CIO magazine recognized the momentum behind Alfresco by naming it one of the top 20 tech companies to keep an eye on in 2010. &amp;nbsp; CIO magazine said that "Alfresco is already well known to open-source types and has the giants of the enterprise content management space coming over all defensive. It already has a large user base and converting that mindshare into real money is the challenge for 2010, assuming it doesn't get picked off by one of said giants."&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;input id="gwProxy" type="hidden" /&gt;&lt;input id="jsProxy" onclick="jsCall();" type="hidden" /&gt;&lt;br /&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-6320256251544427667?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/6320256251544427667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/01/alfresco-turns-five.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/6320256251544427667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/6320256251544427667'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/01/alfresco-turns-five.html' title='Alfresco Turns Five'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_GhtkS9fvzlk/S1tqA7yBVqI/AAAAAAAAAEg/7NhKcRm5mY4/s72-c/HappyBirthday.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-3719041739251789822</id><published>2010-01-18T11:34:00.000-08:00</published><updated>2010-01-18T11:37:44.503-08:00</updated><title type='text'>Alfresco and IBM Join Forces</title><content type='html'>Alfresco announced yesterday at IBM &lt;a href="http://www-01.ibm.com/software/lotus/events/lotusphere2010/"&gt;Lotusphere&lt;/a&gt; 2010 in Orlando &lt;a href="http://www.alfresco.com/partners/solution/ibm/"&gt;integration &lt;/a&gt;of Alfresco with IBM's Lotus Quickr, Lotus Notes,&amp;nbsp; Lotus Connections and Websphere Portal.&amp;nbsp; Alfresco has named the integration &lt;i&gt;Alfresco Content Services for Lotus&lt;/i&gt;, and it is scheduled to be available in Spring 2010.&amp;nbsp; The announcement described it as "economical, scalable and open."&lt;br /&gt;&lt;br /&gt;Although it isn't clear exactly how long it took to pull off the integration of the two products, &lt;a href="http://www-01.ibm.com/software/lotus/events/lotusphere2010/news/alfrescopr.html"&gt;press releases&lt;/a&gt; boast that they managed to do it within 'record time', attributing much of their speedy development to the use of REST Web Services and CMIS, the new Content Management Interoperability Services standard, something which both Alfresco and IBM have been pushing hard for.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://en.wikipedia.org/wiki/Content_Management_Interoperability_Services"&gt;CMIS &lt;/a&gt;standard (or more correctly, soon-to-be standard) has the potential to be the enabler for a whole new category of Content Management (CM) applications -- integrated collaborative content management (&lt;a href="http://community.zdnet.co.uk/blog/0,1000000567,10014876o-2000458459b,00.htm"&gt;ICCM&lt;/a&gt;), ones that can blend data and information from multiple data sources, which could enable collaboration between users regardless of the exact collaboration tools that are being used.&lt;br /&gt;&lt;br /&gt;Highlights of the Alfresco-Lotus integretion include:&lt;br /&gt;&amp;nbsp; - Integration with &lt;a href="http://www.youtube.com/watch?v=ILFR0V1yJyo"&gt;Microsoft Office&lt;/a&gt; using &lt;a href="http://www.cmswire.com/cms/enterprise-cms/sharepoint-vs-alfresco-a-platform-perspective-004549.php"&gt;Alfresco's implementation of Microsoft Sharepoint&lt;/a&gt; protocol&lt;br /&gt;&amp;nbsp; - Integration with Alfresco's &lt;a href="http://www.thefreelibrary.com/Everything+you+wanted+to+know+about+DoD+5015.2:+the+standard+is+not+a+...-a095630076"&gt;5015.2&lt;/a&gt;-certified implementation of &lt;a href="http://www.youtube.com/watch?v=uFtV5orDWsY"&gt;Records Management&lt;/a&gt;&lt;br /&gt;&amp;nbsp; - Ability to provide 'cloud-computing' deployment&lt;br /&gt;&lt;br /&gt;"Lotus Quickr users can manage, store and retrieve documents, and kick off transformations and workflows through Alfresco without having to change anything on the front end," says John Powell, president and CEO of Alfresco.&lt;br /&gt;&lt;br /&gt;Here is a demo prepared by Alfresco that shows the integration with Lotus Quickr:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;/center&gt;&lt;center&gt;&lt;/center&gt;&lt;center&gt;&lt;/center&gt;&lt;center&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/4MTrsyuQxXk&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/4MTrsyuQxXk&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Clearly Alfresco is aiming at Microsoft with this announcement.&amp;nbsp; John Newton, Alfresco's CTO &lt;a href="http://www.theregister.co.uk/2010/01/15/ibm_lotusphere_fangs/"&gt;called the combination&lt;/a&gt; of Alfresco with IBM Lotus a "real SharePoint killer".&lt;br /&gt;&lt;br /&gt;And that brings up the question of 'why Alfresco' and not IBM's own FileNet.&amp;nbsp; Actually IBM already has a &lt;a href="http://www-01.ibm.com/software/data/content-management/filenet-content-manager/quickr.html"&gt;FileNet integration&lt;/a&gt; with Lotus.&amp;nbsp; Kathleen Reidy, 451 Group senior analyst &lt;a href="http://www.itworldcanada.com/news/lotus-gets-open-source-infusion-from-alfresco/139752"&gt;said &lt;/a&gt;that Alfresco is being positioned as a leaner and lighter-weight option than FileNet.&amp;nbsp; "IBM can't tell customers evaluating Lotus vs. [Microsoft] SharePoint that they need to use FileNet if they want ECM. That is what this Alfresco integration says to me," she says.&amp;nbsp; But the decision to add Alfresco must be causing some concern within IBM's FileNet group.&lt;br /&gt;&lt;input id="gwProxy" type="hidden" /&gt;&lt;input id="jsProxy" onclick="jsCall();" type="hidden" /&gt;&lt;br /&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;input id="gwProxy" type="hidden" /&gt;&lt;!--Session data--&gt;&lt;input id="jsProxy" onclick="jsCall();" type="hidden" /&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-3719041739251789822?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/3719041739251789822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/01/alfresco-and-ibm-join-forces.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/3719041739251789822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/3719041739251789822'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/01/alfresco-and-ibm-join-forces.html' title='Alfresco and IBM Join Forces'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-2100137431065663077</id><published>2010-01-11T21:39:00.000-08:00</published><updated>2010-01-11T21:42:21.222-08:00</updated><title type='text'>Alfresco Spring Surf using Roo</title><content type='html'>Well, I saw Alfresco's SpringSurf &lt;a href="http://www.alfresco.com/about/events/2010/01/webinar_spring_surf_and_spring_web_scripts/"&gt;webinar &lt;/a&gt;last week and I was inspired by the presentation to give it a go.&amp;nbsp;SpringSurf combines the SpringSource Spring framework with Alfresco's&amp;nbsp;&lt;a href="http://wiki.alfresco.com/wiki/Surf_Platform_-_Developers_Guide"&gt;Surf &amp;nbsp;&lt;/a&gt;to create a rapid webapp development environment&amp;nbsp;that focuses on scripting.&lt;br /&gt;&lt;br /&gt;After some false starts, SpringSurf Milestone 2 was released over the weekend. &amp;nbsp;I downloaded it and gave it a try by going through a fairly nice SpringSurf&amp;nbsp;&lt;a href="http://www.springsurf.org/sites/1.0.0.M2/spring-surf-devtools/spring-surf-roo-addon/reference/html/index.html"&gt;tutorial&lt;/a&gt;. &amp;nbsp;But near the end of the first chapter I hit a roadblock. &amp;nbsp;The version of the SpringSource Tool Suite (STS) that I downloaded bundled roo version 1.0.0.RC4. &amp;nbsp;The tutorial shows roo 1.0.0.RC4 -- so it seemed right. &amp;nbsp;But -- it didn't work for me.&lt;br /&gt;&lt;br /&gt;Using the RC4 version of roo, my maven deployment went into an endless loop trying and failing to download dependencies. &amp;nbsp;I ultimately downloaded roo version 1.0.0.RELEASE and, after that, things went a lot more smoothly. &amp;nbsp;I got past the deployment and I saw my first roo-generated surf app! &amp;nbsp;It was pretty cool when things went smoothly.&lt;br /&gt;&lt;br /&gt;Overall the tutorial is good. &amp;nbsp;&lt;a href="http://springsurfroo.blogspot.com/"&gt;Andrew Miller&lt;/a&gt; points out a couple of typos in the sample code in Chapter 2 that can cause some problems, and his solution saved me some time. &amp;nbsp;After the tutorial's second chapter, a lot of the material is stubbed out, still to be written.&lt;br /&gt;&lt;br /&gt;Overall, my impression is that SpringSurf can be used for setting up new sites and the building out of new web pages fairly easily. &amp;nbsp;But it is still a bit rough around the edges -- definitely in an 'early adopter' phase right now.&lt;br /&gt;&lt;br /&gt;It will also be interesting to see how Alfresco WCM capabilities will also be woven into the picture. &amp;nbsp;Hopefully this will be one item that Alfresco addresses in the upcoming presentation of the &lt;a href="http://www.alfresco.com/about/events/2010/02/web-content-management-roadmap-3.3-4.0/"&gt;Alfresco 3.3 and 4.0 WCM roadmaps&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-2100137431065663077?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/2100137431065663077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/01/alfresco-spring-surf-using-roo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/2100137431065663077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/2100137431065663077'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/01/alfresco-spring-surf-using-roo.html' title='Alfresco Spring Surf using Roo'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1622089077919681757.post-9015439465423674168</id><published>2010-01-04T18:34:00.000-08:00</published><updated>2010-01-04T21:42:52.462-08:00</updated><title type='text'>Changing the default Alfresco Share Theme</title><content type='html'>&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;&lt;a href="http://www.alfresco.com/products/collaboration/"&gt;Alfresco &lt;/a&gt;&lt;a href="http://www.blogger.com/"&gt;&lt;span id="goog_1262642226421"&gt;&lt;/span&gt;Share &lt;span id="goog_1262642226422"&gt;&lt;/span&gt;&lt;/a&gt;is an open-source enterprise-class collaborative content management application based on the Alfresco content repository.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;Share was built using Alfresco's web development framework called &lt;a href="http://wiki.alfresco.com/wiki/Surf"&gt;Surf&lt;/a&gt;. &amp;nbsp;Surf is a flexible platform that allows quick and easy development and customization of web applications, like Share. &amp;nbsp;The framework evolved as Alfresco engineers needed a tool for quickly building content-rich applications. &amp;nbsp;Surf is Alfresco's second generation architecture for building web applications. &amp;nbsp; First generation Alfresco applications were based on a web client built using Java JSF, a technology significantly more difficult to develop with than Surf. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;From the beginning, Alfresco technology has been built up around the Java Spring framework. &amp;nbsp;Surf continues to use Spring. &amp;nbsp;In fact the developers of Spriong at SpringSource were so &lt;a href="http://forum.springsource.org/showthread.php?t=81807"&gt;impressed &lt;/a&gt;with Surf that they agreed to cooperate jointly with Alfresco on a project under the Apache banner called the &lt;a href="http://www.alfresco.com/media/releases/2009/12/spring_surf/"&gt;Spring Surf Extension&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;"Alfresco and SpringSource share a common vision for providing more modular and productive web application development frameworks.&amp;nbsp; We welcome this contribution and are pleased to have Alfresco as an active member of the Spring community," said Rod Johnson, General Manager of the SpringSource Division of VMware and the creator of Spring.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;Spring is all about the 'wiring' of interchangeable components. &amp;nbsp;Alfresco Surf/Share has adopted Spring application configurability and also introduced additional XML configuration files. &amp;nbsp;Most Surf customizations and changes start by making a change to an XML property file.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;As a simple example of how this wiring plays out, I'll show here how the 'theme' or color scheme can be changed in Alfresco Share. &amp;nbsp;By default, which theme to use is defined in the file:&amp;nbsp;&lt;i&gt;share/WEB-INF/classes/alfresco/web-framework-config-application.xml&lt;/i&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;Not too surprisingly, the default theme is called &lt;i&gt;default&lt;/i&gt;. &amp;nbsp;If you look into that xml configuration file you will find code similar to the following:&amp;nbsp;&lt;span style="color: black; font-family: monospace; font-size: medium; line-height: normal; white-space: pre;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.formtek.com/blogimages/XML1.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;There are three out-of-the-box themes that ship with Share and the definitions for those themes can be found in the directories under the &lt;i&gt;themes &lt;/i&gt;directory:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-family: monospace; white-space: pre;"&gt;&lt;/span&gt;&lt;a href="http://4.bp.blogspot.com/_GhtkS9fvzlk/S0J0pJ-jTGI/AAAAAAAAAD0/DM0Gn5_aZMI/s1600-h/themedirs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_GhtkS9fvzlk/S0J0pJ-jTGI/AAAAAAAAAD0/DM0Gn5_aZMI/s320/themedirs.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;By changing the theme for the application, you can change the color schema for the application. &amp;nbsp;For example, shown on the top below is the standard default theme for Share, and below that you can see the greenTheme for Share.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://www.formtek.com/blogimages/shareblue.gif" /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt; &lt;/b&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;&lt;b&gt;The default Alfresco Share Blue Theme&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.formtek.com/blogimages/sharegreen.gif" /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;&lt;b&gt;The Alfresco Green Theme&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;A quick way to test out how well a new theme will look is to simply include the theme parameter at the end of the URL, as in: &amp;nbsp;http://localhost:8080/share/page/user/admin/dashboard?theme=default. &amp;nbsp;(Although this trick doesn't seem to be swapping out the new theme images; it only changes the theme css files.)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;To change the theme globally so that it will be applied to every page, it is necessary to make changes to the file: &amp;nbsp;share/WEB-INF/classes/alfresco/web-framework-config-custom.xml. &amp;nbsp;If the file doesn't exist, you should create it in that directory. &amp;nbsp;Otherwise the existing file should be modified to include the following content:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.formtek.com/blogimages/XML2.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;As shown above, each theme is grouped into its own directory and contains a folder of images along with two CSS files, one for the login page (login.css), and another for all other pages in the application (presentation.css). &amp;nbsp;To create a new theme, just create a new directory under themes -- the easiest way to get started is to copy over the default theme and then start editing and replacing.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;Often the first step in customizing the Share site is to change the logo. &amp;nbsp;With themes, swapping in a new logo is easy. &amp;nbsp;By looking into the images directory, we find that there are images called logo.png (the logo displayed on the login page) and app-logo.gif (the logo displayed in the upper left of all other application pages). &amp;nbsp;Making new files with identical file names and placed within your new theme area will override the default logos.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;Next you should have a look at how to change the css files for your new theme. &amp;nbsp;The presentation.css file holds most of those definitions. &amp;nbsp;But looking at the presentation.css file can be a bit daunting. &amp;nbsp;It is about 800 lines of css, including a lot of hex color codes. &amp;nbsp;A good way to get a handle for what's going on in this file is to compare the presentation.css files between two out-of-the-box Alfresco themes. &amp;nbsp;For example, do a diff between the presentation.css file of the greenTheme with the default one.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;For example, using a source diff tool (like the free &lt;a href="http://download.cnet.com/SourceGear-DiffMerge/3000-2212_4-10715487.html?tag=mncol"&gt;SourceGear DiffMerge&lt;/a&gt;) you'll quickly see that there are &amp;nbsp;a lot of differences between the theme files, but things begin to make some sense. &amp;nbsp; You'll need to rename skin references in the file to use your new theme name -- something which occurs in more than 100 places in the file. &amp;nbsp;For example&amp;nbsp;yui-skin-default will need to be renamed yui-skin-NewTheme. &amp;nbsp;Global replace will quickly help with that. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;Because the browser can be forced to reload the image and css files, the theme files can be modified and reloaded without having to stop and start the web server.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;From there on it is possible to experiment with some of the colors. &amp;nbsp;It is also a good idea to investigate using a point and click tool like Firefox/Firebug to visually examine the css. &amp;nbsp;You'll find that about the last hundred lines of presentation.css is marked as "Theme background colors". &amp;nbsp;This is a good place to start making changes. &amp;nbsp;After changing colors there and also changing the dashlet-title-bg.png file, which is the image file used to produce a gradient color effect on the dashlet titlebars, you'll be pretty far along in transforming the skin of the application.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;Creating a new theme is obviously tedious, but Alfresco has done a great job in separating out css from the markup, which at least makes the job possible.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;Here are some screenshots of the Alfresco optional Green Theme:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;a href="http://www.slideshare.net/AlfrescoUE/visual-design-alfresco-green-theme-presentation"&gt;http://www.slideshare.net/AlfrescoUE/visual-design-alfresco-green-theme-presentation&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1622089077919681757-9015439465423674168?l=keytocontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keytocontent.blogspot.com/feeds/9015439465423674168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://keytocontent.blogspot.com/2010/01/changing-default-alfresco-share-theme.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/9015439465423674168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1622089077919681757/posts/default/9015439465423674168'/><link rel='alternate' type='text/html' href='http://keytocontent.blogspot.com/2010/01/changing-default-alfresco-share-theme.html' title='Changing the default Alfresco Share Theme'/><author><name>Dick Weisinger</name><uri>http://www.blogger.com/profile/06275286068863587252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://1.bp.blogspot.com/_GhtkS9fvzlk/S0tmOQICDDI/AAAAAAAAAEA/869ZyM-alz8/S220/Dick1.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GhtkS9fvzlk/S0J0pJ-jTGI/AAAAAAAAAD0/DM0Gn5_aZMI/s72-c/themedirs.png' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
