Jonas Yuan Hace 13 años cool! Thanks a lot, Alex. Por favor identifíquese para votar. Contestar como... Cancelar
Ahmed Hasan Hace 13 años Good Post Alex Por favor identifíquese para votar. Contestar como... Cancelar
Peter Monks Hace 13 años 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. Por favor identifíquese para votar. Contestar como... Cancelar
Sandeep Nair Hace 13 años 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? Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Sandeep Nair Hace 13 años @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. Por favor identifíquese para votar. Contestar como... Cancelar Sandeep Nair Alexander Chow Hace 13 años Oh I see. Thanks for the response. Por favor identifíquese para votar. Contestar como... Cancelar Peter Monks Alexander Chow Hace 13 años Thanks Alexander - does that mean Liferay is indeed directly involved in the ongoing work of the OASIS CMIS TC? Por favor identifíquese para votar. Contestar como... Cancelar
Alexander Chow Sandeep Nair Hace 13 años @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. Por favor identifíquese para votar. Contestar como... Cancelar Sandeep Nair Alexander Chow Hace 13 años Oh I see. Thanks for the response. Por favor identifíquese para votar. Contestar como... Cancelar Peter Monks Alexander Chow Hace 13 años Thanks Alexander - does that mean Liferay is indeed directly involved in the ongoing work of the OASIS CMIS TC? Por favor identifíquese para votar. Contestar como... Cancelar
Sandeep Nair Alexander Chow Hace 13 años Oh I see. Thanks for the response. Por favor identifíquese para votar. Contestar como... Cancelar
Peter Monks Alexander Chow Hace 13 años Thanks Alexander - does that mean Liferay is indeed directly involved in the ongoing work of the OASIS CMIS TC? Por favor identifíquese para votar. Contestar como... Cancelar
Florian Müller Hace 13 años 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. Por favor identifíquese para votar. Contestar como... Cancelar
Alexey Kakunin Hace 13 años Great! Really killer feature of Liferay 6.1.Is it already in svn trunk? Is it possible to play with it? Por favor identifíquese para votar. Contestar como... Cancelar
Alexander Chow Hace 13 años @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. Por favor identifíquese para votar. Contestar como... Cancelar Ivano Carrara Alexander Chow Hace 13 años 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. Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Ivano Carrara Hace 13 años 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 Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 13 años 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 Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 13 años I see, only LR 5.2.3 is supposed to work with Alfresco share ... I could spare half a day then :-) Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 13 años 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. Por favor identifíquese para votar. Contestar como... Cancelar Jonas Yuan Alexander Chow Hace 13 años 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) Por favor identifíquese para votar. Contestar como... Cancelar
Ivano Carrara Alexander Chow Hace 13 años 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. Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Ivano Carrara Hace 13 años 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 Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 13 años 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 Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 13 años I see, only LR 5.2.3 is supposed to work with Alfresco share ... I could spare half a day then :-) Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 13 años 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. Por favor identifíquese para votar. Contestar como... Cancelar
Alexander Chow Ivano Carrara Hace 13 años 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 Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 13 años 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 Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 13 años I see, only LR 5.2.3 is supposed to work with Alfresco share ... I could spare half a day then :-) Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 13 años 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. Por favor identifíquese para votar. Contestar como... Cancelar
Jakub Liska Alexander Chow Hace 13 años 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 Por favor identifíquese para votar. Contestar como... Cancelar
Jakub Liska Alexander Chow Hace 13 años I see, only LR 5.2.3 is supposed to work with Alfresco share ... I could spare half a day then :-) Por favor identifíquese para votar. Contestar como... Cancelar
Jakub Liska Alexander Chow Hace 13 años 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. Por favor identifíquese para votar. Contestar como... Cancelar
Jonas Yuan Alexander Chow Hace 13 años 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) Por favor identifíquese para votar. Contestar como... Cancelar
Jay Brown Hace 13 años 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 Por favor identifíquese para votar. Contestar como... Cancelar Jonas Yuan Jay Brown Hace 13 años 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. Por favor identifíquese para votar. Contestar como... Cancelar
Jonas Yuan Jay Brown Hace 13 años 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. Por favor identifíquese para votar. Contestar como... Cancelar
Alexander Chow Hace 13 años @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. Por favor identifíquese para votar. Contestar como... Cancelar
Jignesh Vachhani Hace 13 años Lots of thanks Alex.Really its a nice enhancement !!! Por favor identifíquese para votar. Contestar como... Cancelar
Jignesh Vachhani Hace 13 años Lots of thanks Alex.Really its a nice enhancement !!! Por favor identifíquese para votar. Contestar como... Cancelar
Jamie L Sammons Hace 13 años 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 Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Jamie L Sammons Hace 13 años @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 Por favor identifíquese para votar. Contestar como... Cancelar Peter Monks Alexander Chow Hace 13 años 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). Por favor identifíquese para votar. Contestar como... Cancelar Jamie L Sammons Peter Monks Hace 13 años @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. Por favor identifíquese para votar. Contestar como... Cancelar
Alexander Chow Jamie L Sammons Hace 13 años @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 Por favor identifíquese para votar. Contestar como... Cancelar Peter Monks Alexander Chow Hace 13 años 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). Por favor identifíquese para votar. Contestar como... Cancelar Jamie L Sammons Peter Monks Hace 13 años @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. Por favor identifíquese para votar. Contestar como... Cancelar
Peter Monks Alexander Chow Hace 13 años 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). Por favor identifíquese para votar. Contestar como... Cancelar Jamie L Sammons Peter Monks Hace 13 años @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. Por favor identifíquese para votar. Contestar como... Cancelar
Jamie L Sammons Peter Monks Hace 13 años @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. Por favor identifíquese para votar. Contestar como... Cancelar
Hajo Kliemeck Hace 12 años 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? Por favor identifíquese para votar. Contestar como... Cancelar
Drew Blessing Hace 12 años 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! Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Drew Blessing Hace 12 años @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? Por favor identifíquese para votar. Contestar como... Cancelar Drew Blessing Alexander Chow Hace 12 años @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! Por favor identifíquese para votar. Contestar como... Cancelar Hajo Kliemeck Drew Blessing Hace 12 años @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! Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Hajo Kliemeck Hace 12 años @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. Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 12 años @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 Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Jakub Liska Hace 12 años @Jakub, yes I'm very much aware of that. Thanks! Por favor identifíquese para votar. Contestar como... Cancelar
Alexander Chow Drew Blessing Hace 12 años @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? Por favor identifíquese para votar. Contestar como... Cancelar Drew Blessing Alexander Chow Hace 12 años @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! Por favor identifíquese para votar. Contestar como... Cancelar Hajo Kliemeck Drew Blessing Hace 12 años @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! Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Hajo Kliemeck Hace 12 años @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. Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 12 años @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 Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Jakub Liska Hace 12 años @Jakub, yes I'm very much aware of that. Thanks! Por favor identifíquese para votar. Contestar como... Cancelar
Drew Blessing Alexander Chow Hace 12 años @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! Por favor identifíquese para votar. Contestar como... Cancelar Hajo Kliemeck Drew Blessing Hace 12 años @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! Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Hajo Kliemeck Hace 12 años @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. Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 12 años @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 Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Jakub Liska Hace 12 años @Jakub, yes I'm very much aware of that. Thanks! Por favor identifíquese para votar. Contestar como... Cancelar
Hajo Kliemeck Drew Blessing Hace 12 años @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! Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Hajo Kliemeck Hace 12 años @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. Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 12 años @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 Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Jakub Liska Hace 12 años @Jakub, yes I'm very much aware of that. Thanks! Por favor identifíquese para votar. Contestar como... Cancelar
Alexander Chow Hajo Kliemeck Hace 12 años @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. Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 12 años @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 Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Jakub Liska Hace 12 años @Jakub, yes I'm very much aware of that. Thanks! Por favor identifíquese para votar. Contestar como... Cancelar
Jakub Liska Alexander Chow Hace 12 años @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 Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Jakub Liska Hace 12 años @Jakub, yes I'm very much aware of that. Thanks! Por favor identifíquese para votar. Contestar como... Cancelar
Alexander Chow Jakub Liska Hace 12 años @Jakub, yes I'm very much aware of that. Thanks! Por favor identifíquese para votar. Contestar como... Cancelar
Jakub Liska Hace 12 años - Editado @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 ? Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Jakub Liska Hace 12 años 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. Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Jakub Liska Hace 12 años 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 Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 12 años 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. Por favor identifíquese para votar. Contestar como... Cancelar
Jakub Liska Jakub Liska Hace 12 años 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. Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Jakub Liska Hace 12 años 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 Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 12 años 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. Por favor identifíquese para votar. Contestar como... Cancelar
Alexander Chow Jakub Liska Hace 12 años 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 Por favor identifíquese para votar. Contestar como... Cancelar Jakub Liska Alexander Chow Hace 12 años 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. Por favor identifíquese para votar. Contestar como... Cancelar
Jakub Liska Alexander Chow Hace 12 años 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. Por favor identifíquese para votar. Contestar como... Cancelar
Navin Agarwal Hace 12 años 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. Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Navin Agarwal Hace 12 años Thanks Navin. I'll track the ticket there. Por favor identifíquese para votar. Contestar como... Cancelar Navin Agarwal Alexander Chow Hace 12 años Hi Alex,I have one more issue , which also I have raised . http://issues.liferay.com/browse/LPS-23407 Por favor identifíquese para votar. Contestar como... Cancelar
Alexander Chow Navin Agarwal Hace 12 años Thanks Navin. I'll track the ticket there. Por favor identifíquese para votar. Contestar como... Cancelar Navin Agarwal Alexander Chow Hace 12 años Hi Alex,I have one more issue , which also I have raised . http://issues.liferay.com/browse/LPS-23407 Por favor identifíquese para votar. Contestar como... Cancelar
Navin Agarwal Alexander Chow Hace 12 años Hi Alex,I have one more issue , which also I have raised . http://issues.liferay.com/browse/LPS-23407 Por favor identifíquese para votar. Contestar como... Cancelar
Michael Kroh Hace 12 años - Editado 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 Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Michael Kroh Hace 12 años - Editado 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 Por favor identifíquese para votar. Contestar como... Cancelar
Alexander Chow Michael Kroh Hace 12 años - Editado 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 Por favor identifíquese para votar. Contestar como... Cancelar
Natasa Bulatovic Hace 12 años - Editado Dear all,interested if there is any possibility/plans to add a SVN repository of choice via LR document library? Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Natasa Bulatovic Hace 12 años 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 Por favor identifíquese para votar. Contestar como... Cancelar
Alexander Chow Natasa Bulatovic Hace 12 años 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 Por favor identifíquese para votar. Contestar como... Cancelar
Denis Signoretto Hace 11 años 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. Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Denis Signoretto Hace 11 años 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 Por favor identifíquese para votar. Contestar como... Cancelar
Alexander Chow Denis Signoretto Hace 11 años 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 Por favor identifíquese para votar. Contestar como... Cancelar
Denis Signoretto Hace 11 años - Editado 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. Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Denis Signoretto Hace 11 años 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 Por favor identifíquese para votar. Contestar como... Cancelar
Alexander Chow Denis Signoretto Hace 11 años 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 Por favor identifíquese para votar. Contestar como... Cancelar
Denis Signoretto Hace 11 años @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. Por favor identifíquese para votar. Contestar como... Cancelar Alexander Chow Denis Signoretto Hace 11 años 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. Por favor identifíquese para votar. Contestar como... Cancelar
Alexander Chow Denis Signoretto Hace 11 años 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. Por favor identifíquese para votar. Contestar como... Cancelar