Hi,
We wish to migrate from Enterprise Edition to Community Edition. The Enterprise source version is 5.1.1.4. We choosed the latest 5.1.x Community Edition that is 5.1.g as the target version. We followed the following Alfresco rule : to migrate from M.m.p version of Enterprise Edition, chose the latest M.m.x version of Community Edition (x=g that is the most recent letter in the version, if M.m=5.1). But we meet some problems with alfresco 5.1.g WAR :
- it embeds many 5.2.a jars
- the displayed version is 5.2.0 instead of 5.1.g
So this is my question : is 5.1.g the right version for our migration ?
If so, why 5.1.g alfresco war embeds 5.2.a jars ? Is it normal ? Which are the risks ?
if not, which target version should we take ? Should we migrate from 5.1.1.4 to 5.1.f or 5.1.e instead ?
Thank you in advance for your help.
Best regards
Solved! Go to Solution.
5.1.g is a bit of a problematic version as to how it relates to GA/EA releases, since some of the artifacts on artifacts.alfresco.com include some early-access (EA) 5.2 libraries. As far as I am aware, the "dirty parts" affect the Repository+Share Services WAR (org.alfresco:alfresco:war:5.1.g) which contains 5.2.a libraries since it originates from 201606 EA. Only by doing a manual install using 5.1.g for Repository from 201605 GA and 5.1.g from 201606 EA for Share will you get a clean, correct setup.
I would typically pick the next major version up when moving to Community Edition. 5.1.g is a lower / less advanced version than 5.1.1.4, meaning that 5.1.1.4 could have already introduced minor schema changes that may not be compatible with 5.1.g. If 5.2 were used, it should detect that the previous 5.1.1.4 is of a lower version and check which changes need to be made to the schema to upgrade to 5.2 proper., potentially leaving out patches that have already run as part of the 5.1.1.4 Enterprise version.
NOTE: This reply was updated to correct some mistaken statements - original reply:
5.1.g (I believe it was 201605 GA) was a bit of a dirty release, since some of the download bundles included some early-access (EA) 5.2 libraries. As far as I am aware, the "dirty parts" affect primarily the Share user interface. Only by doing a manual install using 5.1.g for Repository from 201605 and 5.1.f from 201604 for Share will you get a clean, correct setup (there is no 5.1.g for Share).
I would typically pick the next major version up when moving to Community Edition. 5.1.g is a lower / less advanced version than 5.1.1.4, meaning that 5.1.1.4 could have already introduced minor schema changes that may not be compatible with 5.1.g. If 5.2 were used, it should detect that the previous 5.1.1.4 is of a lower version and check which changes need to be made to the schema to upgrade to 5.2 proper., potentially leaving out patches that have already run as part of the 5.1.1.4 Enterprise version.
5.1.g is a bit of a problematic version as to how it relates to GA/EA releases, since some of the artifacts on artifacts.alfresco.com include some early-access (EA) 5.2 libraries. As far as I am aware, the "dirty parts" affect the Repository+Share Services WAR (org.alfresco:alfresco:war:5.1.g) which contains 5.2.a libraries since it originates from 201606 EA. Only by doing a manual install using 5.1.g for Repository from 201605 GA and 5.1.g from 201606 EA for Share will you get a clean, correct setup.
I would typically pick the next major version up when moving to Community Edition. 5.1.g is a lower / less advanced version than 5.1.1.4, meaning that 5.1.1.4 could have already introduced minor schema changes that may not be compatible with 5.1.g. If 5.2 were used, it should detect that the previous 5.1.1.4 is of a lower version and check which changes need to be made to the schema to upgrade to 5.2 proper., potentially leaving out patches that have already run as part of the 5.1.1.4 Enterprise version.
NOTE: This reply was updated to correct some mistaken statements - original reply:
5.1.g (I believe it was 201605 GA) was a bit of a dirty release, since some of the download bundles included some early-access (EA) 5.2 libraries. As far as I am aware, the "dirty parts" affect primarily the Share user interface. Only by doing a manual install using 5.1.g for Repository from 201605 and 5.1.f from 201604 for Share will you get a clean, correct setup (there is no 5.1.g for Share).
I would typically pick the next major version up when moving to Community Edition. 5.1.g is a lower / less advanced version than 5.1.1.4, meaning that 5.1.1.4 could have already introduced minor schema changes that may not be compatible with 5.1.g. If 5.2 were used, it should detect that the previous 5.1.1.4 is of a lower version and check which changes need to be made to the schema to upgrade to 5.2 proper., potentially leaving out patches that have already run as part of the 5.1.1.4 Enterprise version.
Hi Axel,
Thank you for your reply. We noticed that alfresco-5.1.g war contains 5.1.g (e.g. alfresco-share-services-5.1.g.jar) and 5.2.a jars (e.g. : alfresco-repository-5.2.a-EA.jar,alfresco-mbeans-5.2.a-EA.jar ) but not share-5.1.g. war. Share only contains 5.1.g jars and correctly display 5.1.g. We downloaded alfresco and share wars from Alfresco Maven private repository.
I was not precise enough : we have not deployed 5.1.1.4 yet and will not do. Actually, we will directly deploy in 5.1(g?) Community Edition. So it is not really a migration but simply a development change. So we will not meet the problem with the database patch. I wish to stay in 5.1 version because we nearly finished our custom development and want to minimize additional work et bugs risks with 5.2.
So I wonder if I should take 5.1.f instead of 5.1.g for this.
Putchhat
Alfresco 5.1.g is perfectly fine and I use it for production deployments at customers. You just have to make sure to use a combination of artifacts that does not include the 5.2 EA libraries. I have both 5.1.g Repository/platform and 5.1.g Share at my customers. It is easiest if you do not use the installer and instead do a proper, manual installation with WAR files retrieved from the Alfresco Maven repository (artifacts.alfresco.com).
Do you mean I can safely replace every 5.2.a dependencies (e.g. alfresco-repository-5.2.a-EA.jar,alfresco-mbeans-5.2.a-EA.jar) with 5.1.g dependences (e.g. alfresco-repository-5.1.g,alfresco-mbeans-5.1.g.jar) to build alfresco.war ? Have you done that for your alfresco-5.1.g at your customers ? Why was the original alfresco-5.1.g.war artefact built with 5.2.a dependencies ? Was it simply a bug in the depedencies ?
Sorry to insist but I'd like to be sure that replacing 5.2.a dependencies qith 5.1.g dependencies is a correct operation and will not produce errors.
Thank you
Do not replace the dependencies individually. Simply use the Alfresco 5.1.g WAR from https://artifacts.alfresco.com (these are even linked to on the 201605 GA file list page). Of course this effectively constitutes a downgrade which Alfresco does not support in terms of schema validation. So you would have to recreate your database.
As to "Why was the original alfresco-5.1.g.war artefact built with 5.2.a dependencies?" - The answer is: It wasn't. The 5.1.g WAR was built only with 5.1.g dependencies. What you downloaded / used was a bundle / installer that included a 5.2.a WAR for Alfresco Repository and a 5.1.g WAR for Alfresco Share - likely from the 201606-EA release.
The primary thing that is incorrectly done by Alfresco is the publication of the Alfresco Repository WAR from the 201606 EA release as a org.alfresco:alfresco:war:5.1.g artifact. Since separating out the platform (aka Repository) from Share they have implicitly redefined what the artifact org.alfresco:alfresco:war stands for - it no longer is the pure Repository WAR, but a WAR that includes the Share Services module for a specific Share version, and the version label reflects the Share version, not the Repository version.
The correct Maven artifact to use for a clean Alfresco Repository WAR is org.alfresco:alfresco-platform:war. You can use that to then install the Share Services module for 5.1.g and have a clean 5.1.g-only Repository that can support Share 5.1.g.
I believe there already was a JIRA ticket about this to avoid similar confusion in future release versions, but for some reason I cannot find it at the moment.
Thank you.
It is very clear. We downloaded and integrated alfresco-platform.war. As you said, the dependencies are correct now. We are testing. After the tests, if everything is fine, I will mark this problem as solved.
One key correction for people that don't read the entire thread:
201605 GA was not a dirty release. It met our standards for a Generally Available release. The original questioner was installing 201606 EA, which was an early access release. The release notes for that release clearly state that it includes a 5.2.a EA repository WAR in order for Alfresco to get feedback on the new REST APIs.
And a couple of hints:
In the future, the Share and Repository version numbers will drift further out of sync similar to how RM and Search Services have their own version numbers. You will need to pay attention to the GA / EA labels and the Release Notes in order to see what versions are intended to be used together. But as our API stability continues to improve there will be more compatibility between releases.
Also it is highly recommend that people who adopt Alfresco Community Edition keep pace with the latest GA releases, as we do not generally backport fixes to previous releases.
I have gone and modified my response to clarify what is dirty / problematic...
Ask for and offer help to other Alfresco Content Services Users and members of the Alfresco team.
Related links:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.