Animation of Windows Copy

Alfresco Bulk Import : Version 6, cm:content support and beyond

tldr; I extended the excellent Alfresco Bulk Import tool to play with Alfresco 6 and support cm:content properties. More wishes came up along the way. I’d like to know where the community wants things headed.

I am currently assisting on a greenfield project which just switched to Alfresco 6. At this time, the project only uses core functionality of the repository so we considered the choice reasonable even though the new major release is not quite GA yet. Things showing up on the horizon were just too tempting. More on Kubernetes likely to follow soon. We expected to be faced with regressions but at the same time expected them not to be red flags holding us back. Those expectations haven been proven true so far. Our application required very little changing – mostly due to library updates. Getting SDK 3 to play was a slightly “bigger” issue.

Current State of Affairs

Long story short: The primary motivation was getting Alfresco Bulk Import to play with Alfresco 6. Hence, I implemented that bare bones and opened up an issue Alfresco 6 Support on Peters repo. Had to drop the old SDK 2 dependency to get proper deps in. I never liked amp to I switched it to build a plain jar instead. It seemed desirable to have one artifact supporting all versions of Alfresco so I changed a few Jackson calls to use reflection. I did not yet try it on Alfresco 4 or 5 but I am pretty confident it will be working as well. Furthermore, we found it was lacking a feature we needed – cm:contentproperty type support. Time is always tight and getting things to play is always highest priority. I tried my best keeping all those existing abstractions clean while adding the new functionality.

With the filesystem based implementation and XML metadata reader, cm:content properties appear just as all other other metadata in foo.metadata.properties.xml:

<entry key="yns:contentProp">../../path/to/file.xml</entry>

We reference a file and distinguish by checking the dictionary with the type. If we find it to be cm:content and if the referenced file exists, we deal with it accordingly.

That’s what we got today. My fork is on Github. For convenience, there is also a download below in case you just want to give it a spin. Please let me know if you encounter a regression.

Future Directions

Personally, I’d like to see more automated testing – specifically integration testing. Testing is covered by SDK 3 which – you name it – does not work as is with Alfresco 6. In fact, I tweaked the SDK 3 as well. It is just a few lines which already make it usable for me. However, at this time, I don’t want the bulk import to depend on it. Actually, I’d like to see that or a similar quick fix applied to the SDK soon. I may be wrong, but it seems to me that the SDK will change direction driving towards Docker in one regard or another. That’s why I hesitated offering a PR.

I am not aiming to take maintainance for a fork of the bulk import or the SDK. I’d like to see things converge.  Motivation is still stemming from requirements of a real project. I’d be interested to get feedback in case you consider the issues mentioned valuable in order to push things into the proper direction.

Download Alfresco Bulk Import
Andreas Steffan
Pragmatic ? Scientist and DevOps Mind @ Contentreich. Believes in Open Source, the Open Web and Linux. Freelancing in DevOps-, Cloud-, Kubernetes, JVM- and Contentland and speaks Clojure, Kotlin, Groovy, Go, Python, JavaScript, Java, Alfresco and WordPress. Built infrastructure before it was cool. ❤️ Emacs.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert