Thanks David!
I did not have the jetspeed-portlet.xml at all. Now it works. Kind regards, jiri On 11 Jul 2013, at 17:37, David Taylor <[email protected]> wrote: > Make sure you have this declaration in your WEB-INF/jetspeed-portlet.xml > descriptor: > > <js:services> > <js:service name='SpacesService' /> > </js:services> > > > On Thu, Jul 11, 2013 at 7:40 AM, Jiri De Jagere <[email protected]> wrote: > >> Hi David and all, >> >> >> As David recommended I'm looking at the portlet approach rather than the >> velocity extension. >> >> I've been trying to reproduce a subset of the j2-admin spaces >> functionality (list only). My portlet has the following code in its init >> method, very similar to the j2-admin SpacesList portlet. >> >> >> >> PortletContext ctx = getPortletContext(); >> spacesService = (Spaces) >> ctx.getAttribute(CommonPortletServices.CPS_SPACES_SERVICE); >> >> if (spacesService == null) >> { >> throw new PortletException("Could not get instance of portal >> spaces service component"); >> } >> >> >> >> Unfortunately for me the spacesService always results in null. I can't >> seem to access any of the Jetspeed services. Do I require any additional >> configuration? >> >> Any suggestions? >> >> >> Thanks! >> >> >> jiri >> >> On 10 Jul 2013, at 19:57, Jiri De Jagere <[email protected]> wrote: >> >>> Thank you David. >>> >>> I had found the pages example. I'll consider either developing my own >> portlet to produce the html I need or the extension approach as you >> suggested. >>> >>> >>> Kind regards, >>> >>> >>> Jiri >>> >>> On 10 Jul 2013, at 19:30, David Taylor <[email protected]> >> wrote: >>> >>>> This response is probably much more info than you need, sorry for >>>> blabbering on, but thought some background might help... >>>> >>>> In version 2.2.1, we introduced Spaces, the Space and PageNavigators, >> and >>>> the new JetUI framework. One of the differences between the old layout >>>> approach, and the new spaces/navigator approach, is navigations. With >> the >>>> old layout approach, menus, and navigations are all provided via the >>>> SiteManager, which in turn filters your view of the site navigations >> using >>>> the Jetspeed Profile. So in layouts, you will often see macros like >>>> #PageMenu (shown below) using the $site context variable. All the >>>> navigational menus are preprocessed by the SiteManager, and Profiler, >>>> before returning their result. With 2.2.1, and the introduction of Space >>>> navigation, spaces bypassed the Site Manager and went directly to the >>>> PageManager API, retrieving folders underneath spaces. The idea was to >>>> simplify the entire view of the portal. So... if you want to use spaces, >>>> you usually configure your portal, during the initial custom build of >> your >>>> portal, to use the Jetui pipeline >>>> >>>> mvn jetspeed:mvn -Dtarget=ui >>>> >>>> or >>>> >>>> mvn jetspeed:mvn -Dtarget=min-ui >>>> >>>> >>>> where as, if you were to create a project based on the original layouts, >>>> you would do: >>>> >>>> mvn jetspeed:mvn -Dtarget=demo >>>> >>>> or >>>> >>>> mvn jetspeed:mvn -Dtarget=min >>>> >>>> >>>> What Im getting at here is the old layouts don't make the spaces model >>>> available to you. In fact, they use completely different folder roots as >>>> you can see here >>>> >> http://svn.apache.org/viewvc/portals/jetspeed-2/portal/tags/JETSPEED-RELEASE-2.2.2/applications/jetspeed/src/main/webapp/WEB-INF/there >>>> are actually 4 folder trees, 2 for jetui, 2 for original site manager >>>> >>>> So if you want to use Spaces without the Jetui build, and with old >> layouts, >>>> Its definitely possible, but would take some extension work. You would >>>> need to make the Space manager available to your decorators as a >> velocity >>>> context variable ... >>>> >>>> Note that the Jetui pipeline, which supports spaces, only makes use of >> the >>>> decorator CSS, not the actual vm code for decorators. One of the >>>> motivations behind Jetui was to simplify Jetspeed - and use simple >> portlets >>>> for layout and decorator code without introducing extra technologies >> like >>>> learning about Jetpseed layouts and decorators >>>> >>>> >>>> #macro(PagesMenu) >>>> #set($_pages = $site.getMenu("pages").elements) >>>> <div id="pages-menu" class="menu">#foreach($_page in $_pages) >>>> #if($_page.isSelected($site)) >>>> #set($_cssClass = "link page-link selected") >>>> #else >>>> #set($_cssClass = "link page-link") >>>> #end >>>> <a href="portal${_page.url}" class="$!{_cssClass}" >>>> >> title="${_page.getTitle($preferedLocale)}">$_page.getTitle($preferedLocale)</a><span >>>> class="separator"></span>#end >>>> </div> >>>> #end >>>> >>>> >>>> >>>> On Wed, Jul 10, 2013 at 9:23 AM, Jiri De Jagere <[email protected]> >> wrote: >>>> >>>>> Hi David, >>>>> >>>>> >>>>> I had found the Jetspeed API docs and (think I) understand how to use >>>>> them. The examples are quite useful. Thanks for those! >>>>> >>>>> The challenge I have is that I'm trying to put my own responsive ui in >>>>> front of Jetspeed. Because of that I would actually prefer a >> velocity-based >>>>> approach to work them into my header container. I have not yet >> discovered >>>>> how to access and use spaces and page manager from velocity though. If >> you >>>>> could share such an example, that would be really helpful! >>>>> >>>>> >>>>> Kind regards, >>>>> >>>>> >>>>> Jiri >>>>> >>>>> On 10 Jul 2013, at 17:51, David Taylor <[email protected]> >> wrote: >>>>> >>>>>> There are Javadocs online for all the Jetspeed API: >>>>>> >>>>>> Spaces: >>>>>> >>>>> >> http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/spaces/Spaces.html >>>>>> Page Manager (folders): >>>>>> >>>>> >> http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/page/PageManager.html >>>>>> >>>>>> There are examples of using these APIs in the J2-Admin application. >> For >>>>>> example, the Spaces Manager is actually a portlet, not a layout: >>>>>> >>>>>> >>>>> >> http://www.jarvana.com/jarvana/view/org/apache/portals/jetspeed-2/j2-admin/2.2.2/j2-admin-2.2.2.war!/WEB-INF/view/spaces/spaces-manager.jsp?format=ok >>>>>> >>>>>> Portlet Applications can make use of Jetspeed API services by >> declaring >>>>> the >>>>>> services they want to use in the jetspeed-portlet.xml deployment >>>>> descriptor >>>>>> >>>>>> <js:services> >>>>>> <js:service name='PageManager' /> >>>>>> <js:service name='SpacesService' /> >>>>>> >>>>>> Then, in your portlet's init method, the portlet context provides >> access >>>>> to >>>>>> all of your declared services: >>>>>> (from org.apache.jetspeed.portlets.spaces.SpacesList portlet in >> j2-admin >>>>>> app): >>>>>> >>>>>> public void init(PortletConfig config) throws PortletException >>>>>> { >>>>>> super.init(config); >>>>>> PortletContext context = getPortletContext(); >>>>>> spacesService = (Spaces) >>>>>> context.getAttribute(CommonPortletServices.CPS_SPACES_SERVICE); >>>>>> >>>>>> This is how the Space Manager was implemented in Jetspeed 2.2.1. If >> you >>>>>> are more interested in developing your header with velocity templates >> and >>>>>> layouts, let me know, I can give examples of that approach too >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Wed, Jul 10, 2013 at 6:36 AM, Jiri De Jagere <[email protected]> >>>>> wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> >>>>>>> I'm developing my own header and footer for a Jetspeed-based >>>>> application. >>>>>>> I've found the API calls to list the pages for a particular view, >> but I >>>>>>> can't find how to list the available folders and links (spaces). >>>>>>> >>>>>>> Could someone please point me in the right direction? >>>>>>> >>>>>>> >>>>>>> Thanks! >>>>>>> >>>>>>> >>>>>>> Jiri >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: [email protected] >>>>>>> For additional commands, e-mail: >> [email protected] >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> David >>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: [email protected] >>>>> For additional commands, e-mail: [email protected] >>>>> >>>>> >>>> >>>> >>>> -- >>>> David >>> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > > > -- > David --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
