juliocamarero/liferay-portal — pull request #1122 by matethurzo (2013-01-22 12:48:46+00:00)
Title: LPS-27530 Staging changes for bookmarks

Hey Julio,

We have changed the commits as you asked, first moving the logic then changing it according to the new environment - you'll see the higher number of commits.
I'm not sure if this approach will always work in the future, it will depend on how much the logic will change. Anyway we will try to follow this approach where possible in the future.

Let me answer your questions here from the previous pull request as well.
- the data range check should be in the portlet data handler logic conceptually as well. The portlet itself should know what data it "wants to export", the staged model data handlers are just executing the job. So it's in the portlet data handler now.
- By the first glance you may say that we can refactor all the calls towards the StagedModelDataHandlerRegistry to a generic place, and we have thought about that scenario but we keep it as it is right now. The reason is we want to find a generic place where every component of the portal could reach this generic location, and as we go forward we will refactor those, but currently it's unclear where this location would be. It can be StagingUtil, or else, but we would like to examine that a little further. The second reason is that I think it's easier to review, because you can see exactly what's happening right in the code.
- we have removed the elements length check from the previous pull request for two reasons: it's not necessarily common in the portal to check the length of these kind of parameters and the other is that it is changing portlet by portlet. I mean the bookmarks operate with two elements: folders and entries, the document library operates with 7 or 8: folders, entries, repository, etc. This is also the reason why we cannot move this to the base class as well.
- we have fixed the export logic, you were right, when exporting with a date range it was broken, now it's working as tested, thanks for letting this know!
- querying up folders and entries in the portlet data handler: currently we are querying up every folder and every entry during the export and then we filter for the date range. we follow the same approach in the new portlet data handler as well, however I think we can tune this using custom finders and queries, I think that could be handled in a different story, so we will investigate that later.

Sorry for the long comment, let me know if you have any questions.

Thanks,

Máté

cc: @KocsisDaniel