Peter Monks 13 Years Ago Great news! It would be great to hear how the demand for the CMISHook looks after this new functionality is released. Would you be willing to make a prediction, perhaps? ;-)Also, is anyone from Liferay engaged with the CMIS OASIS technical committee? Most of the limitations of CMIS 1.0 raised in the post are well known to the TC and being considered for inclusion in future versions, but it would be great to also have client implementers (such as Liferay) engaged in the process to ensure the spec meets their needs. Please sign in to reply. Reply as... Cancel
Sandeep Nair 13 Years Ago Very nicely explained and I have to say its very innovative. One doubt i have is about permissions. Will the permissions be at liferay's end and the repository will just act to its name thats is storing documents or is it necessary to have permission in the repository to access the documents? Please sign in to reply. Reply as... Cancel Alexander Chow Sandeep Nair 13 Years Ago @Peter The concerns I have raised in this post are well known in OASIS. Actually, if you look at the links I posted, they all link to OASIS public documents.@Sandeep The CMIS protocol specifies a set of permissions that, within Liferay, is translated over. All the permissions are managed from the third-party repository's end. Please sign in to reply. Reply as... Cancel Sandeep Nair Alexander Chow 13 Years Ago Oh I see. Thanks for the response. Please sign in to reply. Reply as... Cancel Peter Monks Alexander Chow 13 Years Ago Thanks Alexander - does that mean Liferay is indeed directly involved in the ongoing work of the OASIS CMIS TC? Please sign in to reply. Reply as... Cancel
Alexander Chow Sandeep Nair 13 Years Ago @Peter The concerns I have raised in this post are well known in OASIS. Actually, if you look at the links I posted, they all link to OASIS public documents.@Sandeep The CMIS protocol specifies a set of permissions that, within Liferay, is translated over. All the permissions are managed from the third-party repository's end. Please sign in to reply. Reply as... Cancel Sandeep Nair Alexander Chow 13 Years Ago Oh I see. Thanks for the response. Please sign in to reply. Reply as... Cancel Peter Monks Alexander Chow 13 Years Ago Thanks Alexander - does that mean Liferay is indeed directly involved in the ongoing work of the OASIS CMIS TC? Please sign in to reply. Reply as... Cancel
Sandeep Nair Alexander Chow 13 Years Ago Oh I see. Thanks for the response. Please sign in to reply. Reply as... Cancel
Peter Monks Alexander Chow 13 Years Ago Thanks Alexander - does that mean Liferay is indeed directly involved in the ongoing work of the OASIS CMIS TC? Please sign in to reply. Reply as... Cancel
Florian Müller 13 Years Ago Hi Alexander,The CMIS performance can actually be pretty good.I think you are using OpenCMIS under the hood. Reuse the Session object as much as you can. It does a lot of caching for you and tries to avoid unnecessary calls to the repository. Especially, the AtomPub binding benefits from it. OpenCMIS is thread-safe. It's no problem to share the Session or other CMIS objects across threads.Also, only fetch the properties you really need. Some repositories send lot of properties by default, which bloat the messages and reduce the performance. Some CMIS properties have to be calculated on the repository side, which can take time. If you filter them out with an OpenCMIS OperationContext, you gain performance. Have a look at the CMIS Workbench that is part of OpenCMIS. There is no noticeable delay when you navigate through the folder hierarchy. Please sign in to reply. Reply as... Cancel
Alexey Kakunin 13 Years Ago Great! Really killer feature of Liferay 6.1.Is it already in svn trunk? Is it possible to play with it? Please sign in to reply. Reply as... Cancel
Alexander Chow 13 Years Ago @Peter I was part of it last year but there were some changes on our status that I'm not too clear on.@Alexey Definitely. Give her a try and let me know what you think. You can email me directly if you like: alexander.chow { at } liferay.com.@Florian Good to hear from you and your thoughts on performance. I am very much aware that running things via the workbench can be quite snappy. If you like, we can have more of a technical discussion offline (not sure if this is the best forum for clarifying technical problems) -- feel free to email me.Briefly, for the OperationContext, though this is true, the bulk of the properties are needed. I mean, fundamentally, to the end user, we are trying to portray the third-party repository to look and feel like a Liferay repository that has many properties stored in the database and other things in the filesystem or something like that. So, there is not much filtering that can occur.In regards to the reuse of sessions, the difficulty comes when we have a multi-user environment (as compared to the workbench). Each session must be configured different for each user. So, if you have 100 logged in users, you need to keep that many sessions opened, with their respective caches. When things are managed all within Liferay's own repository, we have the ability to cache based on the roles of the users which, obviously, shrinks the number of individual caches stored. And when we load a page, we load not only the contents of a folder, but also statistics for its subfolders and sub-subfolder listing and other such things -- none of which are retrieved when we are using the workbench. Instead, we now require multiple queries to address this across the wire.There are undoubtedly areas which we can improve on our end. Maybe we can configure it so a lot of these extra statistics and random information can be removed. But, at present, that is the current experience our users are used to without the same speed hit.Anyhow, as I said, if you would like to discuss this further, drop me an email or maybe we can arrange a call. Please sign in to reply. Reply as... Cancel Ivano Carrara Alexander Chow 13 Years Ago Hi Alexander !It is not clear for me if we can configure multiple DL portlets instance with each instance pointing (for example) to a separate Alfresco servers...In fact, in a possible scenario, we can aggregate in a single portal the contents contained in various Alfresco servers, of course instantiating the same quantity of DL portlets, each one in a different community...Thank you for your carification !Ivano C. Please sign in to reply. Reply as... Cancel Alexander Chow Ivano Carrara 13 Years Ago Hi Ivano,I am not quite sure I understand your question. But ultimately, in one DL portlet, you can point to multiple servers -- each mounted as a separate repository. In my example above I simulate having two Alfresco servers (one via CMIS AtomPub and another via CMIS Web Services) mounted to the same DL portlet.Hope that clarifies things!Alex Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 13 Years Ago Hi Alex, I wanted to give it a try, but it is impossible to even connect from liferay via alfresco share http://issues.liferay.com/browse/LPS-15543 ... I spent half a day on this issue. I simply can't figure that out.... whatever I tried I ended up with this error...I'd really appreciate if you could take a look at it... I feel hopelesshttp://issues.alfresco.com/jira/browse/ALF-7423 Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 13 Years Ago I see, only LR 5.2.3 is supposed to work with Alfresco share ... I could spare half a day then :-) Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 13 Years Ago Could you please guys take a look at the last comments ? http://www.liferay.com/community/forums/-/message_boards/message/7703791It is a relevant issue to this one. Please sign in to reply. Reply as... Cancel Jonas Yuan Alexander Chow 13 Years Ago Hi Alex, got error when adding repository (at revision 74180, created account admin/admin with role Administrator, and log in as admin/admin).04:46:03,851 ERROR [RepositoryServiceImpl:305] com.liferay.portal.security.auth.PrincipalException: org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: Unauthorizedcom.liferay.portal.security.auth.PrincipalException: org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: Unauthorizedat com.liferay.portal.repository.cmis.CMISRepository.processException(CMISRepository.java:1408)at com.liferay.portal.repository.cmis.CMISRepository.initRepository(CMISRepository.java:619)at com.liferay.portal.service.impl.RepositoryServiceImpl.createRepositoryImpl(RepositoryServiceImpl.java:415)at com.liferay.portal.service.impl.RepositoryServiceImpl.mountRepository(RepositoryServiceImpl.java:302) Please sign in to reply. Reply as... Cancel
Ivano Carrara Alexander Chow 13 Years Ago Hi Alexander !It is not clear for me if we can configure multiple DL portlets instance with each instance pointing (for example) to a separate Alfresco servers...In fact, in a possible scenario, we can aggregate in a single portal the contents contained in various Alfresco servers, of course instantiating the same quantity of DL portlets, each one in a different community...Thank you for your carification !Ivano C. Please sign in to reply. Reply as... Cancel Alexander Chow Ivano Carrara 13 Years Ago Hi Ivano,I am not quite sure I understand your question. But ultimately, in one DL portlet, you can point to multiple servers -- each mounted as a separate repository. In my example above I simulate having two Alfresco servers (one via CMIS AtomPub and another via CMIS Web Services) mounted to the same DL portlet.Hope that clarifies things!Alex Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 13 Years Ago Hi Alex, I wanted to give it a try, but it is impossible to even connect from liferay via alfresco share http://issues.liferay.com/browse/LPS-15543 ... I spent half a day on this issue. I simply can't figure that out.... whatever I tried I ended up with this error...I'd really appreciate if you could take a look at it... I feel hopelesshttp://issues.alfresco.com/jira/browse/ALF-7423 Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 13 Years Ago I see, only LR 5.2.3 is supposed to work with Alfresco share ... I could spare half a day then :-) Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 13 Years Ago Could you please guys take a look at the last comments ? http://www.liferay.com/community/forums/-/message_boards/message/7703791It is a relevant issue to this one. Please sign in to reply. Reply as... Cancel
Alexander Chow Ivano Carrara 13 Years Ago Hi Ivano,I am not quite sure I understand your question. But ultimately, in one DL portlet, you can point to multiple servers -- each mounted as a separate repository. In my example above I simulate having two Alfresco servers (one via CMIS AtomPub and another via CMIS Web Services) mounted to the same DL portlet.Hope that clarifies things!Alex Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 13 Years Ago Hi Alex, I wanted to give it a try, but it is impossible to even connect from liferay via alfresco share http://issues.liferay.com/browse/LPS-15543 ... I spent half a day on this issue. I simply can't figure that out.... whatever I tried I ended up with this error...I'd really appreciate if you could take a look at it... I feel hopelesshttp://issues.alfresco.com/jira/browse/ALF-7423 Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 13 Years Ago I see, only LR 5.2.3 is supposed to work with Alfresco share ... I could spare half a day then :-) Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 13 Years Ago Could you please guys take a look at the last comments ? http://www.liferay.com/community/forums/-/message_boards/message/7703791It is a relevant issue to this one. Please sign in to reply. Reply as... Cancel
Jakub Liska Alexander Chow 13 Years Ago Hi Alex, I wanted to give it a try, but it is impossible to even connect from liferay via alfresco share http://issues.liferay.com/browse/LPS-15543 ... I spent half a day on this issue. I simply can't figure that out.... whatever I tried I ended up with this error...I'd really appreciate if you could take a look at it... I feel hopelesshttp://issues.alfresco.com/jira/browse/ALF-7423 Please sign in to reply. Reply as... Cancel
Jakub Liska Alexander Chow 13 Years Ago I see, only LR 5.2.3 is supposed to work with Alfresco share ... I could spare half a day then :-) Please sign in to reply. Reply as... Cancel
Jakub Liska Alexander Chow 13 Years Ago Could you please guys take a look at the last comments ? http://www.liferay.com/community/forums/-/message_boards/message/7703791It is a relevant issue to this one. Please sign in to reply. Reply as... Cancel
Jonas Yuan Alexander Chow 13 Years Ago Hi Alex, got error when adding repository (at revision 74180, created account admin/admin with role Administrator, and log in as admin/admin).04:46:03,851 ERROR [RepositoryServiceImpl:305] com.liferay.portal.security.auth.PrincipalException: org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: Unauthorizedcom.liferay.portal.security.auth.PrincipalException: org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: Unauthorizedat com.liferay.portal.repository.cmis.CMISRepository.processException(CMISRepository.java:1408)at com.liferay.portal.repository.cmis.CMISRepository.initRepository(CMISRepository.java:619)at com.liferay.portal.service.impl.RepositoryServiceImpl.createRepositoryImpl(RepositoryServiceImpl.java:415)at com.liferay.portal.service.impl.RepositoryServiceImpl.mountRepository(RepositoryServiceImpl.java:302) Please sign in to reply. Reply as... Cancel
Jay Brown 13 Years Ago Hi Alex. I'm the development lead for IBM's CMIS servers. Would you be interested in doing some interoperability testing if I could give you access to a test IBM CMIS P8 cloud system. I'm just looking for you to point your client at my public server and see if there are any compatibility issues. We do this with a lot of CMIS client vendors (e.g. Apache Chemistry ) and we have found that is makes both clients and implementers better. Sometimes we even end up tightening up the spec as a result of gray areas that we uncover. Looking forward to hearing from you. You will find my correct email address in your database under this account. Thanks in advance, Jay BrownIBM Please sign in to reply. Reply as... Cancel Jonas Yuan Jay Brown 13 Years Ago Hi Jay, Thanks. I want to test IBM CMIS P8, too. In LR 6.1, OpenCMIS Apache Chemistry should get supported 100%. Eventually it would be nice that the CMIS of Day Software, Dennis Hamilton, EMC, FatWire, Microsoft, Open Text,Oracle, and SAP could be tested in details in Liferay 6.1. Please sign in to reply. Reply as... Cancel
Jonas Yuan Jay Brown 13 Years Ago Hi Jay, Thanks. I want to test IBM CMIS P8, too. In LR 6.1, OpenCMIS Apache Chemistry should get supported 100%. Eventually it would be nice that the CMIS of Day Software, Dennis Hamilton, EMC, FatWire, Microsoft, Open Text,Oracle, and SAP could be tested in details in Liferay 6.1. Please sign in to reply. Reply as... Cancel
Alexander Chow 13 Years Ago @Jakub In general, Liferay has provided a CMISHook since 6.0 and, in the upcoming 6.1 (not yet released), we provide mounting of multiple repositories -- CMIS being one of them via CMISRepository. I'll respond more in your message board post.@Jonas From the looks of your exception, it looks like you have an authentication exception on the Alfresco end. Did you check their logs? Also, make sure you can hook into it using the CMIS workbench (http://incubator.apache.org/chemistry/cmis-workbench.html). If you can't there, you definitely won't be able to via Liferay.@Jay That would be brilliant! P8 is what of the repositories I am tasked with testing against so that is exactly what I would need. Drop me an email -- alexander.chow { at } liferay.com. Please sign in to reply. Reply as... Cancel
Jignesh Vachhani 13 Years Ago Lots of thanks Alex.Really its a nice enhancement !!! Please sign in to reply. Reply as... Cancel
Jignesh Vachhani 13 Years Ago Lots of thanks Alex.Really its a nice enhancement !!! Please sign in to reply. Reply as... Cancel
Jamie L Sammons 13 Years Ago Hi Alex,Awesome feature! Its nice to be able to give end users the consistent look and feel of Liferay with a powerful backend repository like Alfresco.However I am noticing the performance hit that you mentioned quite a bit. I have Alfresco running on a pretty hefty dedicated system and it still takes 5 to 10 seconds for files and folders to show up. The Alfresco process is pretty pegged whenever Liferay is pulling up files and folders. Hopefully some of the things Florian mentioned can help with this.Thanks,Jamie Please sign in to reply. Reply as... Cancel Alexander Chow Jamie L Sammons 13 Years Ago @Jamie Florian and I have had quite a few emails about improving the performance. I have taken a few steps at boosting the performance which you should be able to see as of rev 74447. No matter what, the first time a logged in user accesses a given folder, it will take a little bit to load for the data to be cached. I can't comment on how well Alfresco performs because I don't use Alfresco on a regular basis. But now, I have minimised the number of calls I am making over the wire so it may improve for you.Let me know how things go.Alex Please sign in to reply. Reply as... Cancel Peter Monks Alexander Chow 13 Years Ago Yeah minimising the number of round trips is the #1 priority from a performance perspective. If a single call is found to be slow then the usual Alfresco performance tuning and analysis process can be followed (a service Alfresco provides, fwiw). Please sign in to reply. Reply as... Cancel Jamie L Sammons Peter Monks 13 Years Ago @Alex It does seem faster. I'm also going to try upgrading the Alfresco side to Alfresco Enterprise 3.5 since its still at 3.3. @Peter I was thinking about opening a ticket with Alfresco to see if I could get some basic tuning parameters as well. Please sign in to reply. Reply as... Cancel
Alexander Chow Jamie L Sammons 13 Years Ago @Jamie Florian and I have had quite a few emails about improving the performance. I have taken a few steps at boosting the performance which you should be able to see as of rev 74447. No matter what, the first time a logged in user accesses a given folder, it will take a little bit to load for the data to be cached. I can't comment on how well Alfresco performs because I don't use Alfresco on a regular basis. But now, I have minimised the number of calls I am making over the wire so it may improve for you.Let me know how things go.Alex Please sign in to reply. Reply as... Cancel Peter Monks Alexander Chow 13 Years Ago Yeah minimising the number of round trips is the #1 priority from a performance perspective. If a single call is found to be slow then the usual Alfresco performance tuning and analysis process can be followed (a service Alfresco provides, fwiw). Please sign in to reply. Reply as... Cancel Jamie L Sammons Peter Monks 13 Years Ago @Alex It does seem faster. I'm also going to try upgrading the Alfresco side to Alfresco Enterprise 3.5 since its still at 3.3. @Peter I was thinking about opening a ticket with Alfresco to see if I could get some basic tuning parameters as well. Please sign in to reply. Reply as... Cancel
Peter Monks Alexander Chow 13 Years Ago Yeah minimising the number of round trips is the #1 priority from a performance perspective. If a single call is found to be slow then the usual Alfresco performance tuning and analysis process can be followed (a service Alfresco provides, fwiw). Please sign in to reply. Reply as... Cancel Jamie L Sammons Peter Monks 13 Years Ago @Alex It does seem faster. I'm also going to try upgrading the Alfresco side to Alfresco Enterprise 3.5 since its still at 3.3. @Peter I was thinking about opening a ticket with Alfresco to see if I could get some basic tuning parameters as well. Please sign in to reply. Reply as... Cancel
Jamie L Sammons Peter Monks 13 Years Ago @Alex It does seem faster. I'm also going to try upgrading the Alfresco side to Alfresco Enterprise 3.5 since its still at 3.3. @Peter I was thinking about opening a ticket with Alfresco to see if I could get some basic tuning parameters as well. Please sign in to reply. Reply as... Cancel
Hajo Kliemeck 12 Years Ago does anyone have experience with the combination of Liferay 6.1, Alfresco, CMIS and CAS? i think it is not possible because the password has to be saved... any ideas? Please sign in to reply. Reply as... Cancel
Drew Blessing 12 Years Ago How will authentication to the external repository work if we use SSO, like CAS, with the portal? In this case the portal never gets to see the password, so cannot store it to send on to the repository.The only thing I can think of is that somehow the external repository will forward the request to the CAS server and receive an auth ticket behind the scenes. This is a clear shot in the dark! Other than this, I am very excited about this support and cannot wait to try it out! Please sign in to reply. Reply as... Cancel Alexander Chow Drew Blessing 12 Years Ago @Hajo @Drew Yeah the question of CAS (and other SSO systems) is something that is in the back of my mind. The question really is whether we can either (1) use the ticket used to log into the portal or (2) create a proxy ticket to log into the third-party repository, probably the latter. Or, to put it another way, it is a question of whether the third-party repository supports CAS (proxy)tickets via CMIS... and I can throw in the hook for that (should be relatively simple, if it does).I have tried exploring this with Alfresco, but haven't gotten too far... mainly because I don't know too much about how to get CAS running on Alfresco (not an Alfresco expert here) and my contact in Alfresco wasn't too clear on how CAS works with CMIS either. I also have been a bit strapped with some other work so haven't really been able to research this too much.@Peter @Florian Any thoughts on this one? Please sign in to reply. Reply as... Cancel Drew Blessing Alexander Chow 12 Years Ago @Alexander I completely understand the struggle with Alfresco CAS. The documentation are not very helpful, and neither are their engineers on the forums. I have been able to get Alfresco CASified, though. I would be willing to provide my documentation if you're interested. I am fairly certain that CASifying Alfresco also puts all web service URLs behind CAS as well. Although it's wishful thinking I am hoping that if both Alfresco and Liferay are CASified and the user is already authenticated, attempting to access Alfresco via CMIS will automatically trigger a CAS ticket request and push through on it's own. I haven't had a chance to test this yet, but plan to soon. Thanks for your work. It's really going to be slick! Please sign in to reply. Reply as... Cancel Hajo Kliemeck Drew Blessing 12 Years Ago @alex, look at this: http://issues.alfresco.com/jira/browse/ALF-7074if you are willing to modify your cmishook, you should create a seperate alfresco-cmishook! Please sign in to reply. Reply as... Cancel Alexander Chow Hajo Kliemeck 12 Years Ago @drew why don't you drop me an email. alexander.chow { at } liferay.com@hajo thanks for the link. Will need to explore this further. Not sure if that is a CAS ticket or an Alfresco ticket. But I think we can probably create a generic authentication utility that Liferay can use to login to not only Alfresco but any other system. Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 12 Years Ago @Alex, regarding managing metadata, custom types / JCR mixins, it is called "Secondary types" and it seems to be in development http://tools.oasis-open.org/issues/browse/CMIS-713 Please sign in to reply. Reply as... Cancel Alexander Chow Jakub Liska 12 Years Ago @Jakub, yes I'm very much aware of that. Thanks! Please sign in to reply. Reply as... Cancel
Alexander Chow Drew Blessing 12 Years Ago @Hajo @Drew Yeah the question of CAS (and other SSO systems) is something that is in the back of my mind. The question really is whether we can either (1) use the ticket used to log into the portal or (2) create a proxy ticket to log into the third-party repository, probably the latter. Or, to put it another way, it is a question of whether the third-party repository supports CAS (proxy)tickets via CMIS... and I can throw in the hook for that (should be relatively simple, if it does).I have tried exploring this with Alfresco, but haven't gotten too far... mainly because I don't know too much about how to get CAS running on Alfresco (not an Alfresco expert here) and my contact in Alfresco wasn't too clear on how CAS works with CMIS either. I also have been a bit strapped with some other work so haven't really been able to research this too much.@Peter @Florian Any thoughts on this one? Please sign in to reply. Reply as... Cancel Drew Blessing Alexander Chow 12 Years Ago @Alexander I completely understand the struggle with Alfresco CAS. The documentation are not very helpful, and neither are their engineers on the forums. I have been able to get Alfresco CASified, though. I would be willing to provide my documentation if you're interested. I am fairly certain that CASifying Alfresco also puts all web service URLs behind CAS as well. Although it's wishful thinking I am hoping that if both Alfresco and Liferay are CASified and the user is already authenticated, attempting to access Alfresco via CMIS will automatically trigger a CAS ticket request and push through on it's own. I haven't had a chance to test this yet, but plan to soon. Thanks for your work. It's really going to be slick! Please sign in to reply. Reply as... Cancel Hajo Kliemeck Drew Blessing 12 Years Ago @alex, look at this: http://issues.alfresco.com/jira/browse/ALF-7074if you are willing to modify your cmishook, you should create a seperate alfresco-cmishook! Please sign in to reply. Reply as... Cancel Alexander Chow Hajo Kliemeck 12 Years Ago @drew why don't you drop me an email. alexander.chow { at } liferay.com@hajo thanks for the link. Will need to explore this further. Not sure if that is a CAS ticket or an Alfresco ticket. But I think we can probably create a generic authentication utility that Liferay can use to login to not only Alfresco but any other system. Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 12 Years Ago @Alex, regarding managing metadata, custom types / JCR mixins, it is called "Secondary types" and it seems to be in development http://tools.oasis-open.org/issues/browse/CMIS-713 Please sign in to reply. Reply as... Cancel Alexander Chow Jakub Liska 12 Years Ago @Jakub, yes I'm very much aware of that. Thanks! Please sign in to reply. Reply as... Cancel
Drew Blessing Alexander Chow 12 Years Ago @Alexander I completely understand the struggle with Alfresco CAS. The documentation are not very helpful, and neither are their engineers on the forums. I have been able to get Alfresco CASified, though. I would be willing to provide my documentation if you're interested. I am fairly certain that CASifying Alfresco also puts all web service URLs behind CAS as well. Although it's wishful thinking I am hoping that if both Alfresco and Liferay are CASified and the user is already authenticated, attempting to access Alfresco via CMIS will automatically trigger a CAS ticket request and push through on it's own. I haven't had a chance to test this yet, but plan to soon. Thanks for your work. It's really going to be slick! Please sign in to reply. Reply as... Cancel Hajo Kliemeck Drew Blessing 12 Years Ago @alex, look at this: http://issues.alfresco.com/jira/browse/ALF-7074if you are willing to modify your cmishook, you should create a seperate alfresco-cmishook! Please sign in to reply. Reply as... Cancel Alexander Chow Hajo Kliemeck 12 Years Ago @drew why don't you drop me an email. alexander.chow { at } liferay.com@hajo thanks for the link. Will need to explore this further. Not sure if that is a CAS ticket or an Alfresco ticket. But I think we can probably create a generic authentication utility that Liferay can use to login to not only Alfresco but any other system. Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 12 Years Ago @Alex, regarding managing metadata, custom types / JCR mixins, it is called "Secondary types" and it seems to be in development http://tools.oasis-open.org/issues/browse/CMIS-713 Please sign in to reply. Reply as... Cancel Alexander Chow Jakub Liska 12 Years Ago @Jakub, yes I'm very much aware of that. Thanks! Please sign in to reply. Reply as... Cancel
Hajo Kliemeck Drew Blessing 12 Years Ago @alex, look at this: http://issues.alfresco.com/jira/browse/ALF-7074if you are willing to modify your cmishook, you should create a seperate alfresco-cmishook! Please sign in to reply. Reply as... Cancel Alexander Chow Hajo Kliemeck 12 Years Ago @drew why don't you drop me an email. alexander.chow { at } liferay.com@hajo thanks for the link. Will need to explore this further. Not sure if that is a CAS ticket or an Alfresco ticket. But I think we can probably create a generic authentication utility that Liferay can use to login to not only Alfresco but any other system. Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 12 Years Ago @Alex, regarding managing metadata, custom types / JCR mixins, it is called "Secondary types" and it seems to be in development http://tools.oasis-open.org/issues/browse/CMIS-713 Please sign in to reply. Reply as... Cancel Alexander Chow Jakub Liska 12 Years Ago @Jakub, yes I'm very much aware of that. Thanks! Please sign in to reply. Reply as... Cancel
Alexander Chow Hajo Kliemeck 12 Years Ago @drew why don't you drop me an email. alexander.chow { at } liferay.com@hajo thanks for the link. Will need to explore this further. Not sure if that is a CAS ticket or an Alfresco ticket. But I think we can probably create a generic authentication utility that Liferay can use to login to not only Alfresco but any other system. Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 12 Years Ago @Alex, regarding managing metadata, custom types / JCR mixins, it is called "Secondary types" and it seems to be in development http://tools.oasis-open.org/issues/browse/CMIS-713 Please sign in to reply. Reply as... Cancel Alexander Chow Jakub Liska 12 Years Ago @Jakub, yes I'm very much aware of that. Thanks! Please sign in to reply. Reply as... Cancel
Jakub Liska Alexander Chow 12 Years Ago @Alex, regarding managing metadata, custom types / JCR mixins, it is called "Secondary types" and it seems to be in development http://tools.oasis-open.org/issues/browse/CMIS-713 Please sign in to reply. Reply as... Cancel Alexander Chow Jakub Liska 12 Years Ago @Jakub, yes I'm very much aware of that. Thanks! Please sign in to reply. Reply as... Cancel
Alexander Chow Jakub Liska 12 Years Ago @Jakub, yes I'm very much aware of that. Thanks! Please sign in to reply. Reply as... Cancel
Jakub Liska 12 Years Ago - Edited @Alex, 3 months ago, I was about to implement BaseRepositoryImpl so that I would mount a custom JCR repository to DL, via this implementation. I said to myself that I better wait until it stabilizes or some documentation shows up. In regard to BaseRepositoryImpl / BaseLocalRepositoryImpl :Is it so, that CMISRepository doesn't implement the local interface, because ACL is handled on the repository side ?So that if the third party repository hadn't its own authentication / authorization mechanism, it would implement both interfaces and the remote one would be a permission checking wrapper for the local one, right ?In regard to sync of a 3rd party repository with RepositoryEntry, the idea is (in CMISRepository impl) having all documents synchronized, right ? It can be seen in CMISRepository.cacheFoldersAndFileEntries(); You mentioned that in this blog post. But shouldn't CMIS be only a mounting point ? I don't see a reason for keeping state of remote repository in RepositoryEntry table. Whatever CRUD I do, I want it to be reflected only in the remote repository, imho. What is the idea behind the synchronization ?Not only CMIS repository, but even a custom JCR repository should be only "mounted" to DL. Why would one need to keep track of documentIDs ? Please sign in to reply. Reply as... Cancel Jakub Liska Jakub Liska 12 Years Ago I suppose that the reasons have "integration nature", because DL uses DLAppService and it operates with FileEntries, so that addFileEntry() method of a third part repository must return FileEntry and there must be some tracking between FileEntry table and third party repository. For instance, right after file is added via DL, it is added to AssetPublisher.I believe that a lot of LR developers would actually need to employ DL only as UI for their custom repositories. If you google around, you see that in most cases, people think about using their document store in LR. They've got a document store and they are searching for a portal to wrap it with.Considering that hooks are meant only for scaling purposes. When used with LiferayRepository, the store must be empty, to be in sync with FileEntries. They can be used directly though (not necessarily via LiferayRepository).It isn't clear to me, what third party repositories that implement BaseRepositoryImpl are meant for. Because it is very hard to think about the conflicts that may arise when you make changes into the third party repository not only via BaseRepositoryImpl implementation but even by some other means. It practically excludes the possibility to use DL as a user interface for custom document stores, which I think is what people would like to see. Though it is hard to imagine something like this if the state in the document store and FileEntry table is to be synchronized, no matter how perfect would the implementation be. Please sign in to reply. Reply as... Cancel Alexander Chow Jakub Liska 12 Years Ago Hi Jakub,The only things that are really synchronized are IDs. The cache you refer to is just for a quick lookup that gets reset for ever HttpRequest. This is because each HttpRequest may access the same files or folder multiple times and we want to minimize excessive calls within a few milliseconds. Hence, there should not really be too much of a conflict between CRUD operations in Liferay vs. the third party repository.Hope that clarifies things.Alex Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 12 Years Ago I'm referring to the synchronized IDs. I'm just saying that for the sake of LR , DL might offer the possibility of being UI for repositories... So that creation of FileEntry could theoretically be part of Repository implementation. That way, DL could be used as UI for third party repositories without any possible sync issues when creating new files. I know it is practically Utopia, because DL is built on FileEntries, it's not built for JCR stores... But I can't even figure what happens if a file is removed from repository (not via DL), but DL already got it's ID :-) The tight integration can be also seen for instance here : EditFileEntryAction.updateFileEntry() method has : AssetPublisherUtil.addAndStoreSelection( actionRequest, DLFileEntry.class.getName(), fileEntry.getFileEntryId(), -1);Shouldn't this be part of the Repository implementation ? If I use my custom repository, it should decide itself about AssetPublishing right ?I'm just trying to point this out, because for past years, as I said, I've seen many people asking about how to utilize Liferay for their existing document stores. Imho DL now is not enough transparent for doing this. Please sign in to reply. Reply as... Cancel
Jakub Liska Jakub Liska 12 Years Ago I suppose that the reasons have "integration nature", because DL uses DLAppService and it operates with FileEntries, so that addFileEntry() method of a third part repository must return FileEntry and there must be some tracking between FileEntry table and third party repository. For instance, right after file is added via DL, it is added to AssetPublisher.I believe that a lot of LR developers would actually need to employ DL only as UI for their custom repositories. If you google around, you see that in most cases, people think about using their document store in LR. They've got a document store and they are searching for a portal to wrap it with.Considering that hooks are meant only for scaling purposes. When used with LiferayRepository, the store must be empty, to be in sync with FileEntries. They can be used directly though (not necessarily via LiferayRepository).It isn't clear to me, what third party repositories that implement BaseRepositoryImpl are meant for. Because it is very hard to think about the conflicts that may arise when you make changes into the third party repository not only via BaseRepositoryImpl implementation but even by some other means. It practically excludes the possibility to use DL as a user interface for custom document stores, which I think is what people would like to see. Though it is hard to imagine something like this if the state in the document store and FileEntry table is to be synchronized, no matter how perfect would the implementation be. Please sign in to reply. Reply as... Cancel Alexander Chow Jakub Liska 12 Years Ago Hi Jakub,The only things that are really synchronized are IDs. The cache you refer to is just for a quick lookup that gets reset for ever HttpRequest. This is because each HttpRequest may access the same files or folder multiple times and we want to minimize excessive calls within a few milliseconds. Hence, there should not really be too much of a conflict between CRUD operations in Liferay vs. the third party repository.Hope that clarifies things.Alex Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 12 Years Ago I'm referring to the synchronized IDs. I'm just saying that for the sake of LR , DL might offer the possibility of being UI for repositories... So that creation of FileEntry could theoretically be part of Repository implementation. That way, DL could be used as UI for third party repositories without any possible sync issues when creating new files. I know it is practically Utopia, because DL is built on FileEntries, it's not built for JCR stores... But I can't even figure what happens if a file is removed from repository (not via DL), but DL already got it's ID :-) The tight integration can be also seen for instance here : EditFileEntryAction.updateFileEntry() method has : AssetPublisherUtil.addAndStoreSelection( actionRequest, DLFileEntry.class.getName(), fileEntry.getFileEntryId(), -1);Shouldn't this be part of the Repository implementation ? If I use my custom repository, it should decide itself about AssetPublishing right ?I'm just trying to point this out, because for past years, as I said, I've seen many people asking about how to utilize Liferay for their existing document stores. Imho DL now is not enough transparent for doing this. Please sign in to reply. Reply as... Cancel
Alexander Chow Jakub Liska 12 Years Ago Hi Jakub,The only things that are really synchronized are IDs. The cache you refer to is just for a quick lookup that gets reset for ever HttpRequest. This is because each HttpRequest may access the same files or folder multiple times and we want to minimize excessive calls within a few milliseconds. Hence, there should not really be too much of a conflict between CRUD operations in Liferay vs. the third party repository.Hope that clarifies things.Alex Please sign in to reply. Reply as... Cancel Jakub Liska Alexander Chow 12 Years Ago I'm referring to the synchronized IDs. I'm just saying that for the sake of LR , DL might offer the possibility of being UI for repositories... So that creation of FileEntry could theoretically be part of Repository implementation. That way, DL could be used as UI for third party repositories without any possible sync issues when creating new files. I know it is practically Utopia, because DL is built on FileEntries, it's not built for JCR stores... But I can't even figure what happens if a file is removed from repository (not via DL), but DL already got it's ID :-) The tight integration can be also seen for instance here : EditFileEntryAction.updateFileEntry() method has : AssetPublisherUtil.addAndStoreSelection( actionRequest, DLFileEntry.class.getName(), fileEntry.getFileEntryId(), -1);Shouldn't this be part of the Repository implementation ? If I use my custom repository, it should decide itself about AssetPublishing right ?I'm just trying to point this out, because for past years, as I said, I've seen many people asking about how to utilize Liferay for their existing document stores. Imho DL now is not enough transparent for doing this. Please sign in to reply. Reply as... Cancel
Jakub Liska Alexander Chow 12 Years Ago I'm referring to the synchronized IDs. I'm just saying that for the sake of LR , DL might offer the possibility of being UI for repositories... So that creation of FileEntry could theoretically be part of Repository implementation. That way, DL could be used as UI for third party repositories without any possible sync issues when creating new files. I know it is practically Utopia, because DL is built on FileEntries, it's not built for JCR stores... But I can't even figure what happens if a file is removed from repository (not via DL), but DL already got it's ID :-) The tight integration can be also seen for instance here : EditFileEntryAction.updateFileEntry() method has : AssetPublisherUtil.addAndStoreSelection( actionRequest, DLFileEntry.class.getName(), fileEntry.getFileEntryId(), -1);Shouldn't this be part of the Repository implementation ? If I use my custom repository, it should decide itself about AssetPublishing right ?I'm just trying to point this out, because for past years, as I said, I've seen many people asking about how to utilize Liferay for their existing document stores. Imho DL now is not enough transparent for doing this. Please sign in to reply. Reply as... Cancel
Navin Agarwal 12 Years Ago Hi Alex,I have tried to do the same But facing some issues with the Visibility of the file. I have raised the issue in the http://issues.liferay.com/browse/LPS-23408. Please help me to fix the issue. Thanks in advance. Please sign in to reply. Reply as... Cancel Alexander Chow Navin Agarwal 12 Years Ago Thanks Navin. I'll track the ticket there. Please sign in to reply. Reply as... Cancel Navin Agarwal Alexander Chow 12 Years Ago Hi Alex,I have one more issue , which also I have raised . http://issues.liferay.com/browse/LPS-23407 Please sign in to reply. Reply as... Cancel
Alexander Chow Navin Agarwal 12 Years Ago Thanks Navin. I'll track the ticket there. Please sign in to reply. Reply as... Cancel Navin Agarwal Alexander Chow 12 Years Ago Hi Alex,I have one more issue , which also I have raised . http://issues.liferay.com/browse/LPS-23407 Please sign in to reply. Reply as... Cancel
Navin Agarwal Alexander Chow 12 Years Ago Hi Alex,I have one more issue , which also I have raised . http://issues.liferay.com/browse/LPS-23407 Please sign in to reply. Reply as... Cancel
Michael Kroh 12 Years Ago - Edited Hi Alex,are there any news about testing against IBM's CMIS servers?We have here inhouse a IBM CMIS Server and I'm not able to connect against that ServerAtomPub:01:16:15,669 DEBUG [FullNameValidatorFactory:46] Return com.liferay.portal.security.auth.DefaultFullNameGenerator01:16:15,671 WARN [DLFileEntryPersistenceImpl:5544] No DLFileEntry exists with the key {groupId=19, folderId=0, title=IBM}01:16:15,751 WARN [RepositoryLocalServiceImpl:95] Unable to initialize CMIS session for repository with {repositoryId=10569}01:16:15,752 DEBUG [InvokerPortletImpl:370] processAction for 20 takes 89 ms01:16:15,753 DEBUG [InvokerFilterChain:113] Skip disabled filter class com.liferay.portal.servlet.filters.servletcontextinclude.ServletContextIncludeFilterWebServices01:22:42,188 DEBUG [FullNameValidatorFactory:46] Return com.liferay.portal.security.auth.DefaultFullNameGenerator01:22:42,189 WARN [DLFileEntryPersistenceImpl:5544] No DLFileEntry exists with the key {groupId=19, folderId=0, title=ibm}01:22:42,200 WARN [RepositoryLocalServiceImpl:95] org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException: Cannot initalize Web Services service object [org.apache.chemistry.opencmis.binding.webservices.RepositoryService]: 2 counts of InaccessibleWSDLException.01:22:42,202 DEBUG [InvokerPortletImpl:370] processAction for 20 takes 22 msIt seem's to me that I'm doing some principal error ?ThanksMichael Please sign in to reply. Reply as... Cancel Alexander Chow Michael Kroh 12 Years Ago - Edited Hi Michael,I've worked with Jay Brown on IBM's P8 server in the past and have been able to get it to work. However, IBM has quite a few servers that have various levels of CMIS support. You may want to try using the CMIS workbench (http://chemistry.apache.org/java/developing/tools/dev-tools-workbench.html) against your server and perhaps even running the built-in TCK to make sure it works first. If it is a principal error, Liferay should be returning that.Also, the forums are perhaps a better forum to discuss problems you may be having than on my blog. It widens the discussion to input from others.Alex Please sign in to reply. Reply as... Cancel
Alexander Chow Michael Kroh 12 Years Ago - Edited Hi Michael,I've worked with Jay Brown on IBM's P8 server in the past and have been able to get it to work. However, IBM has quite a few servers that have various levels of CMIS support. You may want to try using the CMIS workbench (http://chemistry.apache.org/java/developing/tools/dev-tools-workbench.html) against your server and perhaps even running the built-in TCK to make sure it works first. If it is a principal error, Liferay should be returning that.Also, the forums are perhaps a better forum to discuss problems you may be having than on my blog. It widens the discussion to input from others.Alex Please sign in to reply. Reply as... Cancel
Natasa Bulatovic 12 Years Ago - Edited Dear all,interested if there is any possibility/plans to add a SVN repository of choice via LR document library? Please sign in to reply. Reply as... Cancel Alexander Chow Natasa Bulatovic 12 Years Ago Hi Natasha,That's a great question. I don't think that is part of our use case but it is surely a very conceivable one. The framework, however, was built so one can fairly easily build a plugin. Somebody in the community has already done one for te file system. Alex Please sign in to reply. Reply as... Cancel
Alexander Chow Natasa Bulatovic 12 Years Ago Hi Natasha,That's a great question. I don't think that is part of our use case but it is surely a very conceivable one. The framework, however, was built so one can fairly easily build a plugin. Somebody in the community has already done one for te file system. Alex Please sign in to reply. Reply as... Cancel
Denis Signoretto 11 Years Ago Hi Alex,I've successfully mounted an Alfresco 4.0 repository throuth CMIS Atom Pub Service. I can browse folders and files in Document and Media Portlet. I was aspecting that searches could retrurn hits both from local (Liferay) and remote (Alfresco/CMIS) repository but actually only local files are founded.The question is, what about search cabability mounting a remote CMIS repository in Liferay Document and Media Portlet?Thanks,Denis. Please sign in to reply. Reply as... Cancel Alexander Chow Denis Signoretto 11 Years Ago Hi Denis,Liferay 6.1 supports searching both local and remote repositories. The search capabilities, however, are limited to the facilities that is provided by the protocol (in this case CMIS).So, for instance, if you can put a file named "Liferay 6.1.pdf" in both the local and remote repositories and see the differences in the searches. If you search for "Liferay", both should show up (I just tested it). If you are curious, the search is mainly done in the class BaseCmisSearchQueryBuilder.There is a significant difference between 6.1 CE and EE where we overlooked performing a content search (searching against the actual file being uploaded as opposed to simply a name search). This was fixed just after CE was cut so did not make it until 6.1 EE unfortunately (see http://issues.liferay.com/browse/LPS-25066).Hope that helps.Alex Please sign in to reply. Reply as... Cancel
Alexander Chow Denis Signoretto 11 Years Ago Hi Denis,Liferay 6.1 supports searching both local and remote repositories. The search capabilities, however, are limited to the facilities that is provided by the protocol (in this case CMIS).So, for instance, if you can put a file named "Liferay 6.1.pdf" in both the local and remote repositories and see the differences in the searches. If you search for "Liferay", both should show up (I just tested it). If you are curious, the search is mainly done in the class BaseCmisSearchQueryBuilder.There is a significant difference between 6.1 CE and EE where we overlooked performing a content search (searching against the actual file being uploaded as opposed to simply a name search). This was fixed just after CE was cut so did not make it until 6.1 EE unfortunately (see http://issues.liferay.com/browse/LPS-25066).Hope that helps.Alex Please sign in to reply. Reply as... Cancel
Denis Signoretto 11 Years Ago - Edited Hi Alexander,thanks for your clarification. I'm doing some more test on my environment.One more question. Liferay whole repository can be accessed through CMIS ?(e.g. using an application that uses CMIS to access Liferay contents). WDYT ?Thanks,Denis. Please sign in to reply. Reply as... Cancel Alexander Chow Denis Signoretto 11 Years Ago Sounds good.In regards to your question, we do have a ticket out there for Liferay to be exposed as a CMIS repository (http://issues.liferay.com/browse/LPS-10201). At the moment, this is in our backlog since other matters have trumped that in terms of priority.Alex Please sign in to reply. Reply as... Cancel
Alexander Chow Denis Signoretto 11 Years Ago Sounds good.In regards to your question, we do have a ticket out there for Liferay to be exposed as a CMIS repository (http://issues.liferay.com/browse/LPS-10201). At the moment, this is in our backlog since other matters have trumped that in terms of priority.Alex Please sign in to reply. Reply as... Cancel
Denis Signoretto 11 Years Ago @AlexanderThansk for your quick answer.By the way, as reported here (http://www.liferay.com/community/wiki/-/wiki/Main/CMIS+Repository#section-CMIS+Repository-FAQ) mounting CMIS repository require to store user password in session. It's a limit of CMIS itself or (in particular with Alfresco) is there a workaround that allow CMIS repository working wiht a SSO ?Thanks,Denis. Please sign in to reply. Reply as... Cancel Alexander Chow Denis Signoretto 11 Years Ago The 1.0 spec does not really say much in terms of authentication, so most systems support Basic or Digest only. Alfresco has their own proprietary SSO that we do not support. Please sign in to reply. Reply as... Cancel
Alexander Chow Denis Signoretto 11 Years Ago The 1.0 spec does not really say much in terms of authentication, so most systems support Basic or Digest only. Alfresco has their own proprietary SSO that we do not support. Please sign in to reply. Reply as... Cancel