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 <jir...@gmail.com> 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 <jir...@gmail.com> 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 <davidseantay...@gmail.com> > 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 <jir...@gmail.com> > 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 <davidseantay...@gmail.com> > 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 <jir...@gmail.com> > >>> 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: jetspeed-user-unsubscr...@portals.apache.org > >>>>> For additional commands, e-mail: > jetspeed-user-h...@portals.apache.org > >>>>> > >>>>> > >>>> > >>>> > >>>> -- > >>>> David > >>> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: jetspeed-user-unsubscr...@portals.apache.org > >>> For additional commands, e-mail: jetspeed-user-h...@portals.apache.org > >>> > >>> > >> > >> > >> -- > >> David > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: jetspeed-user-unsubscr...@portals.apache.org > For additional commands, e-mail: jetspeed-user-h...@portals.apache.org > > -- David