Jasig/uPortal — pull request #318 by apetro (2014-05-09 14:11:07+00:00)
Title: Enable some servlet Marketplace links

Enables some of the hyperlinks in the Servlet view on Marketplace.

Features
------------

* Links to view the entry for listed portlets on the initial list view now work.
* Links to related portlets from the marketplace entry view now work
* Links to launch the represented portlet from the list view and from the entry view Go menu now work.

Implementation notes
----------------------------

* Moves determining Featured portlets into Marketplace service layer.
* Related portlets are now modeled as full-fledged `MarketplacePortletDefinition` rather than `IPortletDefinition`. Infinite recursion is prevented through lazy initialization.

Deferred work
------------------
* Explored but did not include in this changeset reducing duplication through factoring out commonalities between marketplace portlet and servlet JSPs. That refactor still needs doing. Took some steps towards that in moving the deep-link-to-portlet URLs into the `MarketplacePortletDefinition` rather than generating them in JSP.
* Rating still don't work at all in servlet marketplace even though they're stubbed in the UI
* All the known shortcomings and deferred work of Marketplace generally and of this Marketplace-as-servlet feature branch (e.g., caching, incredibly ugly styling implementation in servlet, etc.)
* Adding a Registry to the architecture is a good idea and would create a path to stop `new`ing up `MarketplacePortletDefinition` instances, would allow multiple references to the same conceptual marketplace entry to actually reference the same marketplace entry instance, a better solution to avoiding infinite recursion in marketplace entry bootstrapping through related portlets.