28 Jul

slf4j conflict during AAAR_Extract execution

slf4jDuring my support activities on the A.A.A.R. solution, I receive few contacts reporting about the error described below. The context is the first execution of the AAAR_Extract script, immediately after the first installation.

2015/07/25 16:25:15 - Cmis Input documents before last update.0 - ERROR (version 5.4.0.1-130, build 1 from 2015-06-14_12-34-55 by buildguy) : Unexpected error
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - ERROR (version 5.4.0.1-130, build 1 from 2015-06-14_12-34-55 by buildguy) : java.lang.LinkageError: loader constraint violation: when resolving method "org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()Lorg/slf4j/ILoggerFactory;" the class loader (instance of org/pentaho/di/core/plugins/KettleURLClassLoader) of the current class, org/slf4j/LoggerFactory, and the class loader (instance of java/net/URLClassLoader) for resolved class, org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type LoggerFactory; used in the signature
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:299)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:269)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:281)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at org.apache.chemistry.opencmis.client.bindings.cache.impl.CacheImpl.<clinit>(CacheImpl.java:38)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at org.apache.chemistry.opencmis.client.bindings.impl.RepositoryInfoCache.<init>(RepositoryInfoCache.java:56)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingImpl.clearAllCaches(CmisBindingImpl.java:253)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingImpl.<init>(CmisBindingImpl.java:150)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at org.apache.chemistry.opencmis.client.bindings.CmisBindingFactory.createCmisAtomPubBinding(CmisBindingFactory.java:146)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at org.apache.chemistry.opencmis.client.runtime.CmisBindingHelper.createAtomPubBinding(CmisBindingHelper.java:98)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at org.apache.chemistry.opencmis.client.runtime.CmisBindingHelper.createBinding(CmisBindingHelper.java:56)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:133)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:112)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at it.francescocorti.kettle.cmisinput.CmisSessionFactory.getNewSession(Unknown Source)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at it.francescocorti.kettle.cmisinput.CmisSessionFactory.getSession(Unknown Source)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at it.francescocorti.kettle.cmisinput.CmisInputMeta.getSession(Unknown Source)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at it.francescocorti.kettle.cmisinput.CmisInputMeta.getFields(Unknown Source)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at it.francescocorti.kettle.cmisinput.CmisInput.processRow(Unknown Source)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62)
2015/07/25 16:25:15 - Cmis Input documents before last update.0 - at java.lang.Thread.run(Thread.java:722)

In this post I would like to face this issue, describing the reasons of this behaviour and focusing on the solution (because there is a solution). Read More

08 Dec

CMIS queries on Alfresco CE 5.0.c

CMIS

CMIS is the most important standard for ECM interoperability. Alfresco is compliance with CMIS 1.1 with Apache Chemistry and CMIS queries are one of the most powerful way to use this ECM. In this post is shared some tests on CMIS queries on the brand new Alfresco Community Edition v5.0.c.

Description of the test environment

I have already shared the test environment I prefer to test Alfresco and CMIS. This is composed by:

  • An Alfresco v5.0.c installation. In this case I use a vanilla installation with uploaded 10K documents.
  • A Pentaho Data Integration (Kettle) v5.2 installation.
  • CMIS Input plugin for PDI to develop queries on Alfresco.

To understand how the CMIS Input plugin works, take a look at the demonstration page here.

Read More

11 Nov

Alfresco 5.0.b CE – Something to fix with Solr4 using CMIS 1.1

bugThanking some of you, during the use of A.A.A.R. some problems appeared using Alfresco 5.0.b Community Edition. Below is described a simple use case using the recent release of the CMIS Input plugin for Pentaho Data Integration v5.2. Waiting for the solution and bugfix, thank you again for the submissions and contributions.

Read More

10 Nov

CMIS Input plugin v1.3 for PDI v5.2… extract your data from your ECM.

PDI CMIS Input plugin

The change log page describes some more details but the most important feature is about the used of the Apache Chemistry libraries updated at the v0.12. This version is useful to support the CMIS 1.1 for Alfresco and more.

During the next hours the new version will be available in the Pentaho marketplace… stay tuned!

02 Jun

Review of the Alfresco CMIS book by Martin Bergljung

Alfresco CMISAs you probably know (or you read it now for the first time) CMIS is an open standard that allows different ECMs to inter-operate over the Internet through the definition of a collection of services and a powerful query language (CMIS-QL), modeled along a subset of SQL.

The goal of this book is to share and explain all the basics of the CMIS, using a practical and technical approach that starts from the history (why the CMIS was born), going through the definition of the (several) services and the query language, and ending with a collection of examples describing how to use CMIS in practice.

CMISOk, CMIS is thought to make different ECMs interoperate, but the amount of different languages and examples described in this book is interesting and well done. Starting from Java (with Apache Chemistry libraries), Javascript + JQuery, Groovy and (bascis of) PHP. Yes, I’m agree with you if you are thinking that the CMIS libraries are more and more than this but the description (and explanation) of the CMIS services (and examples) is all you need to understand how to approach the development using all the different languages supported (.NET, Python, ecc.).

As you can read from the title, Martin Bergljung focuses his description on Alfresco. And this is true because all the examples are developed using an Alfresco repository as referred architecture. But inside the book you can find something more about Alfresco. Personally I have found very interesting the description of the Alfresco Surf together with CMIS standard. Probably this topic is less useful for the most part of the readers (and practical cases) but is an interesting example related to the basics of the Alfresco Share application. Quite interesting also the example on how to make Alfresco and Drupal interact, using CMIS.

packt-publishingLast but not least, I read the book very easily in the first part (the more descriptive) and in the last (full of practical examples in the different languages). I think I will use the book also as manual of the several CMIS services when I will develop something because I suggest you to remember that…

Standard is good!

😉

31 Mar

A.A.A.R. bugfix: Invalid column for cmis:document cmis:objectid

AAAR_for_marketplace

While getting the parent path of the Alfresco nodes, the CMIS query could contain a bug in the ‘cmis:objectid’ field. Instead of ‘cmis:objectid’ should be used ‘cmis:objectId’ (pay attention to the camel case). A new FAQ has been added to the A.A.A.R. FAQ page.

I’m investigating the context because not all the environments requests that camel case format. Until than, if you have a message below:

Failed to execute script 'classpath*:alfresco/template/webscripts/org/alfresco/cmis/queries.post.cmisquery.js’:
Invalid column for cmis:document cmis:objectid

Please modify the query under ‘/Alfresco/Staging/Utility/Set folder’s children’ as described below:

select
cmis:objectId as cmis_objectid,
cmis:name as cmis_name
from
cmis:document
where
in_folder(”${cmis_parentid}”)
and cmis:lastModificationDate >= TIMESTAMP ”${cmis_last_update}”
and cmis:contentStreamLength >= 0′);

Many thanks to Micheal Fraser and Hu Ting Ung for the investigation and correction. Please, don’t stop contact me making suggestions, improvement and corrections to the solution.

03 Dec

PDI CMIS Input plugin is now compliant to Java6 and Java7

PDI CMIS Input plugin

CMIS Input plugin for Pentaho Data Integration is now compliant to Java6 and Java7. The v1.1 release, downloadable from the Pentaho Marketplace, is ready to be used with Pentaho Data Integration v4.3, v4.4 and v5.0.

Many thanks to Adrián Cadena (fugu.ec) for the contribution with the compilation of the sources and testing with Alfresco Enterprise and Community Edition.

Download CMIS Input plugin

26 Nov

New A.A.A.R. Alfresco audit analysis and reporting v1.5 release

A.A.A.R.

A new version 1.5 of the A.A.A.R. – Alfresco audit analisys and reporting has been released with a smarter installation wizard and the compliance to the recent Pentaho 5 release (the compliance with Pentaho 4 still remain). This version makes the adoption of A.A.A.R. solution very easy and (quite) ready for the inclusion in the Pentaho marketplace. Stay tuned for new updates!

Below some useful links: