Follow-up from meetup

33 views
Skip to first unread message

esp...@gmail.com

unread,
Apr 27, 2012, 9:14:54 PM4/27/12
to Utah Alfresco Users
The meetup today was very interesting. We had about 15 people there physically, 5 people on the phone, and 6 organizations were represented. It is fun to see our community grow!

There was a lot of interest in Michael's family history add-on. We are excited for him to post his code somewhere.

I apologize to those who were on the phone during the long conversations around the Q&A items. Thank you Pat and Michael for patiently waiting and giving us so many insights.

We did some planning for our July meetup. I will discuss that in a separate thread.

I've included here my quick and dirty notes from researching the questions, expanded with some of the insights and corrections that come through our conversation together. I have also included in the notes follow-up information I promised. Though I am sure I missed some stuff, perhaps this being in Google's memory will be beneficial.

See you in a few months!

Richard

----

Introductions
-------------

DevCon
--------
Information for 2012 is on the DevCon blog.
Call for papers deadline is only a couple of weeks away. I hope you submit!

Add-on Demo
------------
Michael McCarthy of Tribloom (Denver): Family History add-on. Lots of interest. Michael doesn't feel like the code is ready to post, but we hope he does anyway.

Q&A
-----
* How do you associate files together? ... i.e. many to many type relationships through the UI and through CMIS. So, not just on a folder basis, but on a parent to child as well as sibling to sibling?

Content modeling supports association relationships: peer-to-peer and parent to child.

Share provides button in the UI to select the association on the properties page.

CMIS supports peer-to-peer and parent to child. The CMIS cheatsheet is really useful:

http://cmis.alfresco.com/cmis-cheatsheet.pdf

* What are best practices for searching custom content model fields and aspects?

CMIS Query language with the Alfresco extension for aspect support.

http://docs.alfresco.com/4.0/topic/com.alfresco.enterprise.doc/concepts/opencmis-ext-intro.html

CMIS provides some independence against variability in the specific environment (same query works in multiple versions of Alfresco, across Lucene and Solr).

Eric pointed out that they have problems searching custom content models via the Share interface without configuring Advanced Search. Michael said that there are search templates that need to be configured (documented in the wiki on the full text search query page). He has posted the details to the Utah Alfresco Users list.

* Is there an extension for .CMIS--the .NET library.

I don't believe there is yet. Java, Python, and PHP all have Alfresco extensions.

* In the query line in Alfresco when you search on one of the associated files (say by name) do you get back that file and any associated files, or do you have to actually view that "file" to see the associations?

In the UI you do not get the associated files, but when doing a CMIS Query you can join to get associations.

* How to override a share form and enable/disable UI elements on that form based on Alfresco permissions?

Override the existing page (or parts of the page) on the classpath, see recording for the DevCon presentation including SurfBug

Edit presets.xml to add the new page and/or remove the old page (could just remove the old from the site configurations in the UI)

Adjust stuff in share-xml

To check permissions on parts of a page element: override freemarker templates to check the permissions during page rendering. Requires building a web script to check permissions for the current logged in user and expose it to freemarker.

* How do you write custom code in Alfresco to make 3rd party calls (JDBC, REST, etc.)? Does Alfresco have any recommendations for securely communicating with 3rd party REST services (or API calls)?

Jared pointed out that there is a "Remote" object available in the Share tier, but that you have to authorize endpoints via XML. It can do HTTPS. There is a similar object available in the JS scope of the repository tier, but it is not enabled by default.

Other types of calls can be made by writing a Java webscript to expose an external URL object to the Javascript webscript layer. Any Java library can be incorporated.

* Does Alfresco have any preference (or best practice recommendation) of developers using Java or JavaScript (Web Scripts) for custom code inside Alfresco - what works best?

I like JavaScript whenever possible.

Reasons to use Java: the necessary API isn't available (external URLs, reading constraints in model definitions), or performance considerations.

Jared pointed out that there isn't much of a performance hit when the script is run repeatedly (and so the Java bytecode has been cached), when the data can be cached, and when you are managing transactions correctly. Running multiple queries in serial would probably perform better in Java.

Use the JavaScript debugger. There is one in both the repo tier and Share.

Run Share in a separate web application container

* What is the Alfresco roadmap for fully supporting Maven as a build tool, in addition to Ant?

Build dependency management is being evaluated by our Engineering team right now, but they are evaluating multiple tools for internal and external use.

Our senior EMEA consultant has an Alfresco Maven hobby project that recently had a big release. Many of our partners have contributed to that project.
http://groups.google.com/group/maven-alfresco/browse_thread/thread/6525f5b7d5be25c8#
http://maven.alfresco.com.
http://wiki.alfresco.com/wiki/Managing_Alfresco_Lifecyle_with_Maven

We plan to provide Maven compatible POMs for Enterprise Edition soon.

* In workflow, can you call services that are external to Alfresco?

Absolutely. The Activiti designer has a workflow state for external processes which wraps a standard Java class.

* If you can, can the workflow engine process the entire request without any human interaction ... i.e. an auto task that is never seen by any user in alfresco?

Yes. Workflow tasks can be initiated via an action, via the Quartz Job Scheduler, or via an internal event. These can't be setup in the UI however.

* For mobile applications are there plans to integrate full features, like workflows?

Absolutely. Making solid progress. Might have a seperate app for workflow intensive use cases.

Pat Myers of Zia pointed out that Fresh Docs 2.0 should be available in the next couple weeks, but it is not going to support workflows in that version. The new release will mostly focus on the following: iPad layout support, ability to have multiple CMIS accounts, New branding. But his team can customize it for specific usecases.

* Are there log files and are they easy to get to from the UI?

Not really. But Tomcat can dump the logs into Syslog and then you can use any UI you want. It wouldn't be hard to write a webscript to put it into the UI.

* Are there any Analytics (statistics)?

Not in the UI. The auditing module can store any data you want to export into your own analytics engine. Some partners provide analytics and reporting add-ons. When searching for documentation, Alfresco uses the term "audit" and "audit service".

Community: Jasper, Top Content Dashlet
Partners: Reva, Crafter

There are some auditing capabilities in the UI via the RM module.

Someone pointed out that they have played with the Jasper add-on, and that it is hardcoded to a specific use case and not ready for broad deployment.

Eric pointed out that his team has a remote process that accesses the analytics to react to events within the system, and that they wish it didn't require full administrative permissions. After the meeting Jared realized that a better way to solve this use case would be to have Alfresco call the external process on the important events. That wouldn't require administrative access.

* Best practice for Solr tuning for custom content models?

Jared had some tips that he heard from Andy in engineering, but I didn't get them written down. General message is that we are still learning how to best tune Solr.

* Best practices for user management?

Use a backend like LDAP or Active Directory
Never rename users
If you have over 5,000 users, consider hashing the user home directories

* Best practices in using/configuring Alfresco to facilitate disaster recovery?

Use a clustered environment.
Can dump cache indexes more than once a day
On recovery, your database the newest content that can be accessed. So your database should be slightly older than content directory. (All content in the DB should be flushed to disk.)
During recovery, can have a single machine in the cluster dedicated to index rebuilding.
Solr makes some of this stuff easier.

* People seem to be having problems with Lucene in 4.0.1.

* People requested that we announce community releases on the Alfresco Tech Discussion mailing list. I will raise that with our release manager.

* Gary asked how to contribute to .CMIS in the Apache Chemistry project. The chief maintainer of that library recently left Alfresco for a position with SAP, so I don't have his contact information. Jeff Potts said that if you are contributing patches to the issue queue you will likely receive an invite to participate quickly. If not, let me know and I'll put you in touch with Florian.
Reply all
Reply to author
Forward
0 new messages