<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>jetspeed-dev@portals.apache.org Archives</title>
<link rel="self" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/?format=atom"/>
<link href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/"/>
<id>http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/</id>
<updated>2009-12-07T07:30:33Z</updated>
<entry>
<title>Re: Progress...</title>
<author><name>David Sean Taylor &lt;d.taylor@onehippo.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200912.mbox/%3c7EB544B6-1231-4308-822D-3BA8C46958F5@onehippo.com%3e"/>
<id>urn:uuid:%3c7EB544B6-1231-4308-822D-3BA8C46958F5@onehippo-com%3e</id>
<updated>2009-12-07T06:33:21Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Woonsan,

Not sure what was intended here in toolbox.jsp:

&lt;div id="&lt;portlet:namespace/&gt;portletItemTemplate" style="display: none"&gt;
     &lt;table style="border-collapse: collapse; width: 100%; margin-top:  
0px; margin-bottom: 0px; float: left;"&gt;
	    &lt;tr&gt;
	        &lt;td rowspan="2" width="20%" class="portlet-section-body"&gt;
	            &lt;img src='' /&gt;

the img src is causing an extra pipeline hit


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r887690 - in /portals/jetspeed-2/portal/trunk: components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ jetspeed-api/src/main/java/org/apache/jetspeed/om/page/</title>
<author><name>ate@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200912.mbox/%3c20091206151551.70074238888F@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091206151551-70074238888F@eris-apache-org%3e</id>
<updated>2009-12-06T15:15:50Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ate
Date: Sun Dec  6 15:15:47 2009
New Revision: 887690

URL: http://svn.apache.org/viewvc?rev=887690&amp;view=rev
Log:
Adding lookup of ContentFragment by underlying PSML Fragment id to support decorators actively
pulling in specific fragments at a specific place within the markup

Modified:
    portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentFragmentImpl.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentPageImpl.java
    portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentPage.java

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentFragmentImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentFragmentImpl.java?rev=887690&amp;r1=887689&amp;r2=887690&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentFragmentImpl.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentFragmentImpl.java
Sun Dec  6 15:15:47 2009
@@ -745,6 +745,31 @@
     }
 
     /**
+     * Get content fragment by underlying PSML Fragment id.
+     * 
+     * @param id PSML fragment id
+     * @return content fragment
+     */
+    public ContentFragmentImpl getFragmentByFragmentId(String id)
+    {
+        if (fragment != null &amp;&amp; fragment.getId().equals(id))
+        {
+            return this;
+        }
+        Iterator fragmentIter = getFragments().iterator();
+        while (fragmentIter.hasNext())
+        {
+            ContentFragmentImpl childFragment = (ContentFragmentImpl)fragmentIter.next();
+            ContentFragmentImpl fragment = childFragment.getFragmentByFragmentId(id);
+            if (fragment != null)
+            {
+                return fragment;
+            }
+        }
+        return null;
+    }
+
+    /**
      * Get content fragment nesting level.
      * 
      * @param fragmentId fragment id to find

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentPageImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentPageImpl.java?rev=887690&amp;r1=887689&amp;r2=887690&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentPageImpl.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentPageImpl.java
Sun Dec  6 15:15:47 2009
@@ -154,6 +154,18 @@
     }
 
     /* (non-Javadoc)
+     * @see org.apache.jetspeed.om.page.ContentPage#getFragmentByFragmentId(java.lang.String)
+     */
+    public ContentFragment getFragmentByFragmentId(String id)
+    {
+        if (rootContentFragment != null)
+        {
+            return rootContentFragment.getFragmentByFragmentId(id);
+        }
+        return null;
+    }
+
+    /* (non-Javadoc)
      * @see org.apache.jetspeed.om.page.ContentPage#getFragmentsByName(java.lang.String)
      */
     public List getFragmentsByName(String name)

Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentPage.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentPage.java?rev=887690&amp;r1=887689&amp;r2=887690&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentPage.java
(original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentPage.java
Sun Dec  6 15:15:47 2009
@@ -159,6 +159,13 @@
     ContentFragment getFragmentById(String id);
 
     /**
+     * Returns a ContentFragment represented by the underlying PSML Fragment fragment id
argument.
+     * @param id unique id of the ContentFragment we want to retrieve.
+     * @return
+     */
+    ContentFragment getFragmentByFragmentId(String id);
+
+    /**
      * Returns a list of ContentFragment fragments represented by the name argument.
      * @param name name of the ContentFragments we want to retrieve.
      * @return list of ContentFragment



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>RE: wicket portlet</title>
<author><name>Vlachogiannis Evangelos &lt;evlach@aegean.gr&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200912.mbox/%3c0C3E1DDB8CF69343B9A11D553C3550A683F210FA32@hermes.aegean.gr%3e"/>
<id>urn:uuid:%3c0C3E1DDB8CF69343B9A11D553C3550A683F210FA32@hermes-aegean-gr%3e</id>
<updated>2009-12-06T08:44:46Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Thnx a lot! That seems to work now as a portlet, but in my particular application I get the
following exception. In my markup I ref all ids. Out of the portal I test that and works fine.
Any ideas please?

Unexpected RuntimeException

WicketMessage: The component(s) below failed to render. A common problem is that you have
added a component in code but forgot to reference it in the markup (thus the component will
never be rendered).

1. [MarkupContainer [Component id = tree]]
2. [MarkupContainer [Component id = i]]
3. [MarkupContainer [Component id = 0]]
4. [MarkupContainer [Component id = junctionLink]]
5. [MarkupContainer [Component id = nodeComponent]]
6. [MarkupContainer [Component id = iconLink]]
7. [Component id = icon]
8. [MarkupContainer [Component id = contentLink]]
9. [Component id = content]

Root cause:

org.apache.wicket.WicketRuntimeException: The component(s) below failed to render. A common
problem is that you have added a component in code but forgot to reference it in the markup
(thus the component will never be rendered).

1. [MarkupContainer [Component id = tree]]
2. [MarkupContainer [Component id = i]]
3. [MarkupContainer [Component id = 0]]
4. [MarkupContainer [Component id = junctionLink]]
5. [MarkupContainer [Component id = nodeComponent]]
6. [MarkupContainer [Component id = iconLink]]
7. [Component id = icon]
8. [MarkupContainer [Component id = contentLink]]
9. [Component id = content]

at org.apache.wicket.Page.checkRendering(Page.java:1162)
at org.apache.wicket.Page.renderPage(Page.java:922)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.respond(BookmarkablePageRequestTarget.java:262)
at org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:105)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1258)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:468)
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:301)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
at org.apache.pluto.container.impl.PortletRequestDispatcherImpl.doDispatch(PortletRequestDispatcherImpl.java:174)
at org.apache.pluto.container.impl.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:222)
at org.apache.wicket.protocol.http.portlet.WicketPortlet.processMimeResponseRequest(WicketPortlet.java:655)
at org.apache.wicket.protocol.http.portlet.WicketPortlet.processRequest(WicketPortlet.java:608)
at org.apache.wicket.protocol.http.portlet.WicketPortlet.doView(WicketPortlet.java:469)
at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:348)
at javax.portlet.GenericPortlet.render(GenericPortlet.java:253)
at org.apache.jetspeed.portlet.PortletObjectProxy.proxyRender(PortletObjectProxy.java:244)
at org.apache.jetspeed.portlet.PortletObjectProxy.invoke(PortletObjectProxy.java:159)
at $Proxy19.render(Unknown Source)
at org.apache.jetspeed.factory.JetspeedPortletInstance.render(JetspeedPortletInstance.java:110)
at org.apache.jetspeed.container.services.JetspeedFilterChain.doFilter(JetspeedFilterChain.java:142)
at org.apache.jetspeed.container.services.JetspeedFilterChain.processFilter(JetspeedFilterChain.java:92)
at org.apache.jetspeed.container.services.JetspeedFilterManager.processFilter(JetspeedFilterManager.java:112)
at org.apache.jetspeed.container.JetspeedContainerServlet.doGet(JetspeedContainerServlet.java:272)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
at org.apache.jetspeed.container.invoker.ServletPortletInvoker.invoke(ServletPortletInvoker.java:165)
at org.apache.jetspeed.container.invoker.JetspeedPortletInvokerService.render(JetspeedPortletInvokerService.java:127)
at org.apache.pluto.container.impl.PortletContainerImpl.doRender(PortletContainerImpl.java:157)
at org.apache.jetspeed.container.JetspeedPortletContainerWrapper.doRender(JetspeedPortletContainerWrapper.java:69)
at org.apache.jetspeed.aggregator.impl.RenderingJobImpl.execute(RenderingJobImpl.java:183)
at org.apache.jetspeed.aggregator.impl.PortletRendererImpl.renderNow(PortletRendererImpl.java:160)
at org.apache.jetspeed.aggregator.impl.PortletRendererImpl.renderNow(PortletRendererImpl.java:138)
at org.apache.jetspeed.aggregator.impl.BaseAggregatorImpl.renderMaximizedWindow(BaseAggregatorImpl.java:101)
at org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.build(PageAggregatorImpl.java:73)
at org.apache.jetspeed.aggregator.AggregatorValve.invoke(AggregatorValve.java:46)
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
at org.apache.jetspeed.aggregator.HeaderAggregatorValve.invoke(HeaderAggregatorValve.java:53)
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
at org.apache.jetspeed.decoration.DecorationValve.invoke(DecorationValve.java:137)
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
at org.apache.jetspeed.resource.ResourceValveImpl.invoke(ResourceValveImpl.java:84)
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
at org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke(ActionValveImpl.java:139)
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
at org.apache.jetspeed.container.ContainerValve.invoke(ContainerValve.java:88)
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
at org.apache.jetspeed.container.PageHistoryValve.invoke(PageHistoryValve.java:108)
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
at org.apache.jetspeed.profiler.impl.RefreshUserHomepageValveImpl.invoke(RefreshUserHomepageValveImpl.java:110)
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
at org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerValveImpl.java:251)
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
at org.apache.jetspeed.security.impl.LoginValidationValveImpl.invoke(LoginValidationValveImpl.java:158)
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
at org.apache.jetspeed.security.impl.PasswordCredentialValveImpl.invoke(PasswordCredentialValveImpl.java:151)
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
at org.apache.jetspeed.localization.impl.LocalizationValveImpl.invoke(LocalizationValveImpl.java:170)
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
at org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run(AbstractSecurityValve.java:138)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:454)
at org.apache.jetspeed.security.JSSubject.doAsPrivileged(JSSubject.java:179)
at org.apache.jetspeed.security.impl.AbstractSecurityValve.invoke(AbstractSecurityValve.java:132)
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
at org.apache.jetspeed.container.url.impl.PortalURLValveImpl.invoke(PortalURLValveImpl.java:67)
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
at org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke(CapabilityValveImpl.java:127)
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
at org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.java:146)
at org.apache.jetspeed.engine.JetspeedEngine.service(JetspeedEngine.java:225)
at org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:300)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.jetspeed.engine.servlet.XXSUrlAttackFilter.doFilter(XXSUrlAttackFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at gr.uportal.filter.CASPortalFilter.doFilter(CASPortalFilter.java:154)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:595)

-----Original Message-----
From: Woonsan Ko [mailto:woon_san@yahoo.com] 
Sent: Friday, December 04, 2009 11:27 AM
To: Jetspeed Developers List
Subject: Re: wicket portlet

Hi Vlachogiannis,

There's a simple guideline here:

http://cwiki.apache.org/WICKET/portal-howto.html

Regards,

Woonsan



----- Original Message ----
&gt; From: Vlachogiannis Evangelos &lt;evlach@aegean.gr&gt;
&gt; To: Jetspeed Developers List &lt;jetspeed-dev@portals.apache.org&gt;
&gt; Sent: Fri, December 4, 2009 9:14:06 AM
&gt; Subject: wicket portlet
&gt; 
&gt; Hi list,
&gt; 
&gt; Is there a howto page for developing a wicket portlet for jetspeed? Some hints?
&gt; 
&gt; Thanks a lot,
&gt; Vangelis



      

---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r887431 - /portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java</title>
<author><name>taylor@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200912.mbox/%3c20091204230452.7E9B423889F1@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204230452-7E9B423889F1@eris-apache-org%3e</id>
<updated>2009-12-04T23:04:52Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: taylor
Date: Fri Dec  4 23:04:51 2009
New Revision: 887431

URL: http://svn.apache.org/viewvc?rev=887431&amp;view=rev
Log:
JS2-1087: Adding portlets bug fix

Modified:
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java?rev=887431&amp;r1=887430&amp;r2=887431&amp;view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java
(original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java
Fri Dec  4 23:04:51 2009
@@ -553,37 +553,58 @@
         
     }   
 
+    protected ContentFragment findFirstUnlockedFragment(ContentFragment fragment)
+    {
+        if (fragment.isLocked())
+        {
+            List&lt;ContentFragment&gt; fragments = (List&lt;ContentFragment&gt;)fragment.getFragments();
+            for (ContentFragment f : fragments)
+            {
+                if (f.getType().equals(Fragment.LAYOUT))
+                {
+                    fragment = findFirstUnlockedFragment(f);
+                    if (fragment != null)
+                        return fragment;
+                }
+            }       
+            return null;
+        }
+        return fragment;
+    }
+    
     // BOZO: this only works with flat collections of 1,2,3,4 column layouts. Not meant to
work with nested layouts
     // TODO: move code to an AJAX API
     protected void addPortletToLeastUsedColumn(ContentPage page, String portletName)
     {
-        ContentFragment layoutFragment = page.getRootFragment();
-        String layoutType = layoutFragment.getName();
-        List&lt;ContentFragment&gt; fragments = (List&lt;ContentFragment&gt;)layoutFragment.getFragments();
-        int columnCounts[] = new int[getLayoutSize(layoutType)];
-        for (ContentFragment fragment : fragments)
+        ContentFragment layoutFragment = findFirstUnlockedFragment(page.getRootFragment());
+        if (layoutFragment != null)
         {
-            int column = fragment.getLayoutColumn();
-            int row = fragment.getLayoutRow();
-            if (column == -1)
-                column = min(columnCounts);
-            if (row == -1)
-                row = columnCounts[column];            
-            if (column &gt; fragments.size() -1)
+            String layoutType = layoutFragment.getName();
+            List&lt;ContentFragment&gt; fragments = (List&lt;ContentFragment&gt;)layoutFragment.getFragments();
+            int columnCounts[] = new int[getLayoutSize(layoutType)];
+            for (ContentFragment fragment : fragments)
             {
-                fragment.updateRowColumn(-1, 0);
-                column = 0;
+                int column = fragment.getLayoutColumn();
+                int row = fragment.getLayoutRow();
+                if (column == -1)
+                    column = min(columnCounts);
+                if (row == -1)
+                    row = columnCounts[column];            
+                if (column &gt; fragments.size() -1)
+                {
+                    fragment.updateRowColumn(-1, 0);
+                    column = 0;
+                }
+                columnCounts[column]++;
             }
-            columnCounts[column]++;
-        }
-        int placedColumn = 0;
-        for (int ix = 1; ix &lt; columnCounts.length; ix++)
-        {
-            if (columnCounts[ix] &lt; columnCounts[placedColumn])
-                placedColumn = ix;
+            int placedColumn = 0;
+            for (int ix = 1; ix &lt; columnCounts.length; ix++)
+            {
+                if (columnCounts[ix] &lt; columnCounts[placedColumn])
+                    placedColumn = ix;
+            }
+            layoutFragment.addPortlet(ContentFragment.PORTLET, portletName, columnCounts[placedColumn],
placedColumn);
         }
-        System.out.println("adding portlet at row = " + columnCounts[placedColumn] + ", col
= " + placedColumn);
-        layoutFragment.addPortlet(ContentFragment.PORTLET, portletName, columnCounts[placedColumn],
placedColumn);
     }
     
     public static int min(int[] numbers)



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r887303 - in /portals/jetspeed-2/portal/trunk: components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/ components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/ jetspeed-portal-resources/src/main/r...</title>
<author><name>woonsan@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200912.mbox/%3c20091204180748.9393223888FE@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204180748-9393223888FE@eris-apache-org%3e</id>
<updated>2009-12-04T18:07:48Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: woonsan
Date: Fri Dec  4 18:07:47 2009
New Revision: 887303

URL: http://svn.apache.org/viewvc?rev=887303&amp;view=rev
Log:
JS2-1087: Adding access control for portlet definition query

Modified:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/PaginationUtils.java
    portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java?rev=887303&amp;r1=887302&amp;r2=887303&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
Fri Dec  4 18:07:47 2009
@@ -18,6 +18,7 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 
 import javax.servlet.ServletConfig;
@@ -33,12 +34,14 @@
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.math.NumberUtils;
+import org.apache.jetspeed.JetspeedActions;
 import org.apache.jetspeed.components.portletregistry.PortletRegistry;
 import org.apache.jetspeed.om.portlet.PortletApplication;
 import org.apache.jetspeed.om.portlet.PortletDefinition;
 import org.apache.jetspeed.search.ParsedObject;
 import org.apache.jetspeed.search.SearchEngine;
 import org.apache.jetspeed.search.SearchResults;
+import org.apache.jetspeed.security.SecurityAccessController;
 import org.apache.jetspeed.services.beans.PortletApplicationBean;
 import org.apache.jetspeed.services.beans.PortletApplicationBeanCollection;
 import org.apache.jetspeed.services.beans.PortletDefinitionBean;
@@ -66,12 +69,15 @@
     @Context
     private ServletContext servletContext;
     
+    private SecurityAccessController securityAccessController;
+    
     private PortletRegistry portletRegistry;
     
     private SearchEngine searchEngine;
     
-    public PortletRegistryService(PortletRegistry portletRegistry, SearchEngine searchEngine)
+    public PortletRegistryService(SecurityAccessController securityAccessController, PortletRegistry
portletRegistry, SearchEngine searchEngine)
     {
+        this.securityAccessController = securityAccessController;
         this.portletRegistry = portletRegistry;
         this.searchEngine = searchEngine;
     }
@@ -194,9 +200,9 @@
                 "AND " + queryParam;
             SearchResults searchResults = searchEngine.search(queryText);
             List&lt;ParsedObject&gt; searchResultList = searchResults.getResults();
-            pdBeans.setTotalSize(searchResultList.size());
+            ArrayList&lt;PortletDefinition&gt; searchedPortletDefinitions = new ArrayList&lt;PortletDefinition&gt;();
             
-            for (ParsedObject parsedObject : (List&lt;ParsedObject&gt;) PaginationUtils.subList(searchResultList,
beginIndex, maxResults))
+            for (ParsedObject parsedObject : searchResultList)
             {
                 String uniqueName = SearchEngineUtils.getPortletUniqueName(parsedObject);
                 
@@ -207,17 +213,25 @@
                 
                 PortletDefinition pd = portletRegistry.getPortletDefinitionByUniqueName(uniqueName);
                 
-                if (pd != null)
+                if (pd != null &amp;&amp; securityAccessController.checkPortletAccess(pd,
JetspeedActions.MASK_VIEW))
                 {
-                    pdBeanList.add(new PortletDefinitionBean(pd));
+                    searchedPortletDefinitions.add(pd);
                 }
             }
+            
+            Collection&lt;PortletDefinition&gt; filteredPortletDefinitions = filterPortletDefinitionsBySecurityAccess(searchedPortletDefinitions,
JetspeedActions.MASK_VIEW);
+            pdBeans.setTotalSize(filteredPortletDefinitions.size());
+            
+            for (PortletDefinition pd : (Collection&lt;PortletDefinition&gt;) PaginationUtils.subCollection(filteredPortletDefinitions,
beginIndex, maxResults))
+            {
+                pdBeanList.add(new PortletDefinitionBean(pd));
+            }
         }
         else
         {
             if (StringUtils.isBlank(applicationName) &amp;&amp; StringUtils.isBlank(definitionName))
             {
-                Collection&lt;PortletDefinition&gt; pds = portletRegistry.getAllPortletDefinitions();
+                Collection&lt;PortletDefinition&gt; pds = filterPortletDefinitionsBySecurityAccess(portletRegistry.getAllPortletDefinitions(),
JetspeedActions.MASK_VIEW);
                 pdBeans.setTotalSize(pds.size());
                 
                 for (PortletDefinition pd : (Collection&lt;PortletDefinition&gt;) PaginationUtils.subCollection(pds,
beginIndex, maxResults))
@@ -233,22 +247,19 @@
                 {
                     if (StringUtils.isBlank(definitionName))
                     {
-                        if (pa != null)
+                        Collection&lt;PortletDefinition&gt; pds = filterPortletDefinitionsBySecurityAccess(pa.getPortlets(),
JetspeedActions.MASK_VIEW);
+                        pdBeans.setTotalSize(pds.size());
+                        
+                        for (PortletDefinition pd : (List&lt;PortletDefinition&gt;) PaginationUtils.subCollection(pds,
beginIndex, maxResults))
                         {
-                            Collection&lt;PortletDefinition&gt; pds = pa.getPortlets();
-                            pdBeans.setTotalSize(pds.size());
-                            
-                            for (PortletDefinition pd : (List&lt;PortletDefinition&gt;) PaginationUtils.subList(pa.getPortlets(),
beginIndex, maxResults))
-                            {
-                                pdBeanList.add(new PortletDefinitionBean(pd));
-                            }
+                            pdBeanList.add(new PortletDefinitionBean(pd));
                         }
                     }
                     else
                     {
                         PortletDefinition pd = pa.getPortlet(definitionName);
                         
-                        if (pd != null)
+                        if (pd != null &amp;&amp; securityAccessController.checkPortletAccess(pd,
JetspeedActions.MASK_VIEW))
                         {
                             pdBeanList.add(new PortletDefinitionBean(pd));
                             pdBeans.setTotalSize(1);
@@ -263,4 +274,29 @@
         return pdBeans;
     }
     
+    private Collection&lt;PortletDefinition&gt; filterPortletDefinitionsBySecurityAccess(Collection&lt;PortletDefinition&gt;
collection, int mask)
+    {
+        if (securityAccessController == null)
+        {
+            return collection;
+        }
+        
+        if (collection == null || collection.isEmpty())
+        {
+            return Collections.emptyList();
+        }
+        
+        ArrayList&lt;PortletDefinition&gt; filteredCollection = new ArrayList&lt;PortletDefinition&gt;();
+        
+        for (PortletDefinition pd : collection)
+        {
+            if (securityAccessController.checkPortletAccess(pd, mask))
+            {
+                filteredCollection.add(pd);
+            }
+        }
+        
+        return filteredCollection;
+    }
+    
 }

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/PaginationUtils.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/PaginationUtils.java?rev=887303&amp;r1=887302&amp;r2=887303&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/PaginationUtils.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/PaginationUtils.java
Fri Dec  4 18:07:47 2009
@@ -59,35 +59,13 @@
     
     public static Collection&lt;? extends Object&gt; subCollection(final Collection&lt;?
extends Object&gt; collection, int beginIndex, int maxResults)
     {
-        if (beginIndex &lt; 0 || (beginIndex == 0 &amp;&amp; maxResults &lt; 0))
+        if (collection instanceof List)
         {
-            return collection;
-        }
-        else if (beginIndex &gt;= collection.size())
-        {
-            return Collections.emptyList();
+            return subList((List&lt;? extends Object&gt;) collection, beginIndex, maxResults);
         }
         else
         {
-            List&lt;Object&gt; list = null;
-            
-            if (collection instanceof List)
-            {
-                list = (List&lt;Object&gt;) collection;
-            }
-            else
-            {
-                list = new ArrayList&lt;Object&gt;(collection);
-            }
-            
-            if (maxResults &lt; 0)
-            {
-                return list.subList(beginIndex, list.size());
-            }
-            else
-            {
-                return list.subList(beginIndex, Math.min(list.size(), beginIndex + maxResults));
-            }
+            return subList(new ArrayList&lt;Object&gt;(collection), beginIndex, maxResults);
         }
     }
     

Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml?rev=887303&amp;r1=887302&amp;r2=887303&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
(original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
Fri Dec  4 18:07:47 2009
@@ -108,6 +108,7 @@
   &lt;!-- Portlet Registry JAX-RS Service --&gt;
   &lt;bean id="jaxrsPortletRegistryService" class="org.apache.jetspeed.services.rest.PortletRegistryService"&gt;
     &lt;meta key="j2:cat" value="default" /&gt;
+    &lt;constructor-arg ref="org.apache.jetspeed.security.SecurityAccessController" /&gt;
     &lt;constructor-arg ref="org.apache.jetspeed.components.portletregistry.PortletRegistry"
/&gt;
     &lt;constructor-arg ref="org.apache.jetspeed.search.SearchEngine" /&gt;
   &lt;/bean&gt;



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r887270 - in /portals/jetspeed-2/portal/trunk: components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/ components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/ jetspeed-portal-resources/src/main/resou...</title>
<author><name>woonsan@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200912.mbox/%3c20091204170641.DC6352388882@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204170641-DC6352388882@eris-apache-org%3e</id>
<updated>2009-12-04T17:06:36Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: woonsan
Date: Fri Dec  4 17:06:33 2009
New Revision: 887270

URL: http://svn.apache.org/viewvc?rev=887270&amp;view=rev
Log:
JS2-1087: Adding pagination attribute in the returned jax-rs service results.

Added:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/BeanCollection.java
  (with props)
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeanCollection.java
  (contents, props changed)
      - copied, changed from r886744, portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeanCollection.java
  (contents, props changed)
      - copied, changed from r886744, portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
Removed:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
Modified:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
    portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/BeanCollection.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/BeanCollection.java?rev=887270&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/BeanCollection.java
(added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/BeanCollection.java
Fri Dec  4 17:06:33 2009
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.beans;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * BeansCollection
+ * 
+ * @version $Id$
+ */
+@XmlRootElement(name="collection")
+public class BeanCollection&lt;T&gt; implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+    
+    private Collection&lt;T&gt; collection;
+    
+    private int totalSize = -1;
+    
+    private int beginIndex = -1;
+    
+    public BeanCollection()
+    {
+        
+    }
+    
+    protected Collection&lt;T&gt; getCollection()
+    {
+        return collection;
+    }
+    
+    protected void setCollection(Collection&lt;T&gt; collection)
+    {
+        this.collection = collection;
+    }
+    
+    @XmlAttribute(name="size")
+    public int getSize()
+    {
+        return (collection != null ? collection.size() : 0);
+    }
+    
+    public void setSize()
+    {
+        
+    }
+    
+    @XmlAttribute(name="totalSize")
+    public int getTotalSize()
+    {
+        return totalSize;
+    }
+    
+    public void setTotalSize(int totalSize)
+    {
+        this.totalSize = totalSize;
+    }
+    
+    @XmlAttribute(name="beginIndex")
+    public int getBeginIndex()
+    {
+        return beginIndex;
+    }
+    
+    public void setBeginIndex(int beginIndex)
+    {
+        this.beginIndex = beginIndex;
+    }
+    
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/BeanCollection.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/BeanCollection.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/BeanCollection.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeanCollection.java
(from r886744, portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java)
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeanCollection.java?p2=portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeanCollection.java&amp;p1=portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java&amp;r1=886744&amp;r2=887270&amp;rev=887270&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeanCollection.java
Fri Dec  4 17:06:33 2009
@@ -16,7 +16,6 @@
  */
 package org.apache.jetspeed.services.beans;
 
-import java.io.Serializable;
 import java.util.Collection;
 
 import javax.xml.bind.annotation.XmlElement;
@@ -29,25 +28,24 @@
  * @version $Id$
  */
 @XmlRootElement(name="applications")
-public class PortletApplicationBeans implements Serializable
+public class PortletApplicationBeanCollection extends BeanCollection&lt;PortletApplicationBean&gt;
 {
     private static final long serialVersionUID = 1L;
     
-    private Collection&lt;PortletApplicationBean&gt; portletApplicationBeans;
-    
-    public PortletApplicationBeans()
+    public PortletApplicationBeanCollection()
     {
-        
+        super();
     }
     
+    @Override
     @XmlElements(@XmlElement(name="application"))
-    public Collection&lt;PortletApplicationBean&gt; getPortletApplicationBeans()
+    public Collection&lt;PortletApplicationBean&gt; getCollection()
     {
-        return portletApplicationBeans;
+        return super.getCollection();
     }
     
-    public void setPortletApplicationBeans(Collection&lt;PortletApplicationBean&gt; portletApplicationBeans)
+    public void setPortletApplicationBeans(Collection&lt;PortletApplicationBean&gt; collection)
     {
-        this.portletApplicationBeans = portletApplicationBeans;
+        super.setCollection(collection);
     }
 }

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeanCollection.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeanCollection.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeanCollection.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java?rev=887270&amp;r1=887269&amp;r2=887270&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
Fri Dec  4 17:06:33 2009
@@ -28,6 +28,7 @@
 import org.apache.jetspeed.om.portlet.ContainerRuntimeOption;
 import org.apache.jetspeed.om.portlet.Description;
 import org.apache.jetspeed.om.portlet.DisplayName;
+import org.apache.jetspeed.om.portlet.InitParam;
 import org.apache.jetspeed.om.portlet.Language;
 import org.apache.jetspeed.om.portlet.PortletDefinition;
 import org.apache.jetspeed.om.portlet.Supports;
@@ -52,6 +53,7 @@
     private Collection&lt;LanguageBean&gt; languageBeans;
     private GenericMetadataBean metadataBean;
     private Collection&lt;ContainerRuntimeOptionBean&gt; containerRuntimeOptionBeans;
+    private Collection&lt;InitParamBean&gt; initParamBeans;
     
     public PortletDefinitionBean()
     {
@@ -101,6 +103,13 @@
             containerRuntimeOptionBeanList.add(new ContainerRuntimeOptionBean(containerRuntimeOption));
         }
         containerRuntimeOptionBeans = containerRuntimeOptionBeanList;
+        
+        ArrayList&lt;InitParamBean&gt; initParamBeanList = new ArrayList&lt;InitParamBean&gt;();
+        for (InitParam initParam : portletDefinition.getInitParams())
+        {
+            initParamBeanList.add(new InitParamBean(initParam));
+        }
+        initParamBeans = initParamBeanList;
     }
 
     public String getApplicationName()
@@ -215,4 +224,16 @@
         this.containerRuntimeOptionBeans = containerRuntimeOptionBeans;
     }
     
+    @XmlElementWrapper(name="initparams")
+    @XmlElements(@XmlElement(name="initparam"))
+    public Collection&lt;InitParamBean&gt; getInitParamBeans()
+    {
+        return initParamBeans;
+    }
+
+    public void setInitParamBeans(Collection&lt;InitParamBean&gt; initParamBeans)
+    {
+        this.initParamBeans = initParamBeans;
+    }
+    
 }

Copied: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeanCollection.java
(from r886744, portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java)
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeanCollection.java?p2=portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeanCollection.java&amp;p1=portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java&amp;r1=886744&amp;r2=887270&amp;rev=887270&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeanCollection.java
Fri Dec  4 17:06:33 2009
@@ -16,7 +16,6 @@
  */
 package org.apache.jetspeed.services.beans;
 
-import java.io.Serializable;
 import java.util.Collection;
 
 import javax.xml.bind.annotation.XmlElement;
@@ -29,26 +28,25 @@
  * @version $Id$
  */
 @XmlRootElement(name="definitions")
-public class PortletDefinitionBeans implements Serializable
+public class PortletDefinitionBeanCollection extends BeanCollection&lt;PortletDefinitionBean&gt;
 {
     private static final long serialVersionUID = 1L;
     
-    private Collection&lt;PortletDefinitionBean&gt; portletDefinitionBeans;
-    
-    public PortletDefinitionBeans()
+    public PortletDefinitionBeanCollection()
     {
-        
+        super();
     }
     
+    @Override
     @XmlElements(@XmlElement(name="definition"))
-    public Collection&lt;PortletDefinitionBean&gt; getPortletDefinitionBean()
+    public Collection&lt;PortletDefinitionBean&gt; getCollection()
     {
-        return portletDefinitionBeans;
+        return super.getCollection();
     }
     
-    public void setPortletApplicationBeans(Collection&lt;PortletDefinitionBean&gt; portletDefinitionBeans)
+    public void setPortletApplicationBeans(Collection&lt;PortletDefinitionBean&gt; collection)
     {
-        this.portletDefinitionBeans = portletDefinitionBeans;
+        super.setCollection(collection);
     }
     
 }

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeanCollection.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeanCollection.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeanCollection.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java?rev=887270&amp;r1=887269&amp;r2=887270&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
Fri Dec  4 17:06:33 2009
@@ -40,9 +40,9 @@
 import org.apache.jetspeed.search.SearchEngine;
 import org.apache.jetspeed.search.SearchResults;
 import org.apache.jetspeed.services.beans.PortletApplicationBean;
-import org.apache.jetspeed.services.beans.PortletApplicationBeans;
+import org.apache.jetspeed.services.beans.PortletApplicationBeanCollection;
 import org.apache.jetspeed.services.beans.PortletDefinitionBean;
-import org.apache.jetspeed.services.beans.PortletDefinitionBeans;
+import org.apache.jetspeed.services.beans.PortletDefinitionBeanCollection;
 import org.apache.jetspeed.services.rest.util.PaginationUtils;
 import org.apache.jetspeed.services.rest.util.SearchEngineUtils;
 import org.slf4j.Logger;
@@ -78,7 +78,7 @@
     
     @GET
     @Path("/application/{path:.*}")
-    public PortletApplicationBeans getPortletApplication(@Context HttpServletRequest servletRequest,
+    public PortletApplicationBeanCollection getPortletApplication(@Context HttpServletRequest
servletRequest,
                                                          @Context UriInfo uriInfo,
                                                          @PathParam("path") List&lt;PathSegment&gt;
pathSegments,
                                                          @QueryParam("query") String queryParam,

@@ -95,7 +95,9 @@
         int beginIndex = NumberUtils.toInt(beginIndexParam, -1);
         int maxResults = NumberUtils.toInt(maxResultsParam, -1);
         
-        PortletApplicationBeans paBeans = new PortletApplicationBeans();
+        PortletApplicationBeanCollection paBeans = new PortletApplicationBeanCollection();
+        paBeans.setBeginIndex(beginIndex);
+        paBeans.setTotalSize(0);
         List&lt;PortletApplicationBean&gt; paBeanList = new ArrayList&lt;PortletApplicationBean&gt;();
         
         if (!StringUtils.isBlank(queryParam))
@@ -103,6 +105,7 @@
             String queryText = ParsedObject.FIELDNAME_TYPE + ":\"" + ParsedObject.OBJECT_TYPE_PORTLET_APPLICATION
+ "\" AND " + queryParam;
             SearchResults searchResults = searchEngine.search(queryText);
             List&lt;ParsedObject&gt; searchResultList = searchResults.getResults();
+            paBeans.setTotalSize(searchResultList.size());
             
             for (ParsedObject parsedObject : (List&lt;ParsedObject&gt;) PaginationUtils.subList(searchResultList,
beginIndex, maxResults))
             {
@@ -125,7 +128,10 @@
         {
             if (StringUtils.isBlank(applicationName))
             {
-                for (PortletApplication pa : (Collection&lt;PortletApplication&gt;) PaginationUtils.subCollection(portletRegistry.getPortletApplications(),
beginIndex, maxResults))
+                Collection&lt;PortletApplication&gt; pas = portletRegistry.getPortletApplications();
+                paBeans.setTotalSize(pas.size());
+                
+                for (PortletApplication pa : (Collection&lt;PortletApplication&gt;) PaginationUtils.subCollection(pas,
beginIndex, maxResults))
                 {
                     paBeanList.add(new PortletApplicationBean(pa));
                 }
@@ -136,18 +142,20 @@
                 
                 if (pa != null)
                 {
+                    paBeans.setTotalSize(1);
                     paBeanList.add(new PortletApplicationBean(pa));
                 }
             }
         }
         
         paBeans.setPortletApplicationBeans(paBeanList);
+        
         return paBeans;
     }
     
     @GET
     @Path("/definition/{path:.*}")
-    public PortletDefinitionBeans getPortletDefinition(@Context HttpServletRequest servletRequest,
+    public PortletDefinitionBeanCollection getPortletDefinition(@Context HttpServletRequest
servletRequest,
                                                        @Context UriInfo uriInfo,
                                                        @PathParam("path") List&lt;PathSegment&gt;
pathSegments, 
                                                        @QueryParam("query") String queryParam,

@@ -173,7 +181,9 @@
         int beginIndex = NumberUtils.toInt(beginIndexParam, -1);
         int maxResults = NumberUtils.toInt(maxResultsParam, -1);
         
-        PortletDefinitionBeans pdBeans = new PortletDefinitionBeans();
+        PortletDefinitionBeanCollection pdBeans = new PortletDefinitionBeanCollection();
+        pdBeans.setBeginIndex(beginIndex);
+        pdBeans.setTotalSize(0);
         List&lt;PortletDefinitionBean&gt; pdBeanList = new ArrayList&lt;PortletDefinitionBean&gt;();
         
         if (!StringUtils.isBlank(queryParam))
@@ -184,6 +194,7 @@
                 "AND " + queryParam;
             SearchResults searchResults = searchEngine.search(queryText);
             List&lt;ParsedObject&gt; searchResultList = searchResults.getResults();
+            pdBeans.setTotalSize(searchResultList.size());
             
             for (ParsedObject parsedObject : (List&lt;ParsedObject&gt;) PaginationUtils.subList(searchResultList,
beginIndex, maxResults))
             {
@@ -206,7 +217,10 @@
         {
             if (StringUtils.isBlank(applicationName) &amp;&amp; StringUtils.isBlank(definitionName))
             {
-                for (PortletDefinition pd : (Collection&lt;PortletDefinition&gt;) PaginationUtils.subCollection(portletRegistry.getAllPortletDefinitions(),
beginIndex, maxResults))
+                Collection&lt;PortletDefinition&gt; pds = portletRegistry.getAllPortletDefinitions();
+                pdBeans.setTotalSize(pds.size());
+                
+                for (PortletDefinition pd : (Collection&lt;PortletDefinition&gt;) PaginationUtils.subCollection(pds,
beginIndex, maxResults))
                 {
                     pdBeanList.add(new PortletDefinitionBean(pd));
                 }
@@ -221,6 +235,9 @@
                     {
                         if (pa != null)
                         {
+                            Collection&lt;PortletDefinition&gt; pds = pa.getPortlets();
+                            pdBeans.setTotalSize(pds.size());
+                            
                             for (PortletDefinition pd : (List&lt;PortletDefinition&gt;) PaginationUtils.subList(pa.getPortlets(),
beginIndex, maxResults))
                             {
                                 pdBeanList.add(new PortletDefinitionBean(pd));
@@ -234,6 +251,7 @@
                         if (pd != null)
                         {
                             pdBeanList.add(new PortletDefinitionBean(pd));
+                            pdBeans.setTotalSize(1);
                         }
                     }
                 }
@@ -241,6 +259,7 @@
         }
         
         pdBeans.setPortletApplicationBeans(pdBeanList);
+        
         return pdBeans;
     }
     

Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml?rev=887270&amp;r1=887269&amp;r2=887270&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
(original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
Fri Dec  4 17:06:33 2009
@@ -15,8 +15,9 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 --&gt;
-&lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"&gt;
+&lt;beans xmlns="http://www.springframework.org/schema/beans" 
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"&gt;
   
   &lt;!-- To enable log4j logging instead of the default java logging of cxf. --&gt;
   &lt;bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"&gt;
@@ -68,12 +69,38 @@
     &lt;/property&gt;
   &lt;/bean&gt;
   
+  &lt;bean id="jaxrsJsonProvider" class="org.apache.cxf.jaxrs.provider.JSONProvider"&gt;
+    &lt;meta key="j2:cat" value="default" /&gt;
+    &lt;property name="serializeAsArray" value="true"/&gt;
+    &lt;property name="arrayKeys"&gt;
+      &lt;list&gt;
+        &lt;!--
+        &lt;value&gt;displayName&lt;/value&gt;
+        &lt;value&gt;description&lt;/value&gt;
+        &lt;value&gt;initparam&lt;/value&gt;
+        &lt;value&gt;language&lt;/value&gt;
+        &lt;value&gt;field&lt;/value&gt;
+        &lt;value&gt;portletMode&lt;/value&gt;
+        &lt;value&gt;windowState&lt;/value&gt;
+        &lt;value&gt;definition&lt;/value&gt;
+        &lt;value&gt;application&lt;/value&gt;
+        --&gt;
+      &lt;/list&gt;
+    &lt;/property&gt;
+  &lt;/bean&gt;
+  
   &lt;!-- JAX-RS Service Singleton Resource Beans  --&gt;
   &lt;bean id="org.apache.jetspeed.services.rest.singletons" class="org.springframework.beans.factory.config.SetFactoryBean"&gt;
     &lt;meta key="j2:cat" value="default" /&gt;
     &lt;property name="sourceSet"&gt;
       &lt;set&gt;
+        
+        &lt;!-- JAX-RS Providers --&gt;
+        &lt;ref bean="jaxrsJsonProvider" /&gt;
+        
+        &lt;!-- Resource providers --&gt;
         &lt;ref bean="jaxrsPortletRegistryService" /&gt;
+        
       &lt;/set&gt;
     &lt;/property&gt;
   &lt;/bean&gt;



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r887219 - in /portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login: login-xhtmlbasic.jsp login.jsp portal-login.jsp</title>
<author><name>ate@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200912.mbox/%3c20091204150120.F1A4123888FD@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204150120-F1A4123888FD@eris-apache-org%3e</id>
<updated>2009-12-04T15:01:20Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ate
Date: Fri Dec  4 15:01:19 2009
New Revision: 887219

URL: http://svn.apache.org/viewvc?rev=887219&amp;view=rev
Log:
Also deriving "login" destination url dynamically for the LoginPortlet to stay within the
currently used pipeline, e.g. /portal, /ui, etc.

Modified:
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login-xhtmlbasic.jsp
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login.jsp
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/portal-login.jsp

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login-xhtmlbasic.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login-xhtmlbasic.jsp?rev=887219&amp;r1=887218&amp;r2=887219&amp;view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login-xhtmlbasic.jsp
(original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login-xhtmlbasic.jsp
Fri Dec  4 15:01:19 2009
@@ -47,7 +47,7 @@
         &lt;/c:if&gt;
       &lt;/c:otherwise&gt;
     &lt;/c:choose&gt;   
-    &lt;form method="post" action='&lt;c:url context="${portalContextPath}" value="/login/proxy"/&gt;'&gt;
+    &lt;form method="post" action='&lt;c:url context="${portalContextPath}" value="/login/proxy?${loginDestination}=${requestContext.portalURL.basePath}"/&gt;'&gt;
       &lt;div&gt;
         &lt;fmt:message key="login.label.Username"/&gt;
         &lt;c_rt:set var="userName" value="&lt;%=((RequestContext)request.getAttribute(RequestContext.REQUEST_PORTALENV)).getSessionAttribute(LoginConstants.USERNAME)%&gt;"/&gt;

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login.jsp?rev=887219&amp;r1=887218&amp;r2=887219&amp;view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login.jsp
(original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login.jsp
Fri Dec  4 15:01:19 2009
@@ -29,12 +29,12 @@
   &lt;c:set var="portalContextPath" value="/"/&gt;
 &lt;/c:if&gt;
 &lt;c:set var="encoder" value="${requestContext.request.parameterMap.encoder[0]}"/&gt;
-&lt;c:set var="destLogin" value="/login/proxy"/&gt;
+&lt;c:set var="destLogin" value="/login/proxy?${loginDestination}=${requestContext.portalURL.basePath}"/&gt;
 &lt;c:set var="destLogout" value="/login/logout?${loginDestination}=${requestContext.portalURL.basePath}"/&gt;
 &lt;c:set var="destAccount" value="${requestContext.portalURL.basePath}/my-account.psml"/&gt;
 &lt;c:set var="destContext" value="/"/&gt;
 &lt;c:if test="${not empty encoder &amp;&amp; encoder == 'desktop'}"&gt;
-  &lt;c:set var="destLogin" value="${destLogin}?${loginDestination}=${requestContext.request.contextPath}/desktop"/&gt;
+  &lt;c:set var="destLogin" value="/login/proxy?${loginDestination}=${requestContext.request.contextPath}/desktop"/&gt;
   &lt;c:set var="destLogout" value="/login/logout?${loginDestination}=${requestContext.request.contextPath}/desktop"/&gt;
   &lt;c:set var="destAccount" value="/desktop/my-account.psml?${loginDestination}=${requestContext.request.contextPath}/desktop"/&gt;
   &lt;c:set var="destContext" value="${portalContextPath}"/&gt;

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/portal-login.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/portal-login.jsp?rev=887219&amp;r1=887218&amp;r2=887219&amp;view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/portal-login.jsp
(original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/portal-login.jsp
Fri Dec  4 15:01:19 2009
@@ -30,12 +30,12 @@
   &lt;c:set var="portalContextPath" value="/"/&gt;
 &lt;/c:if&gt;
 &lt;c:set var="encoder" value="${requestContext.request.parameterMap.encoder[0]}"/&gt;
-&lt;c:set var="destLogin" value="/login/proxy"/&gt;
+&lt;c:set var="destLogin" value="/login/proxy?${loginDestination}=${requestContext.portalURL.basePath}"/&gt;
 &lt;c:set var="destLogout" value="/login/logout?${loginDestination}=${requestContext.portalURL.basePath}"/&gt;
 &lt;c:set var="destAccount" value="${requestContext.portalURL.basePath}/my-account.psml"/&gt;
 &lt;c:set var="destContext" value="/"/&gt;
 &lt;c:if test="${not empty encoder &amp;&amp; encoder == 'desktop'}"&gt;
-  &lt;c:set var="destLogin" value="${destLogin}?${loginDestination}=${requestContext.request.contextPath}/desktop"/&gt;
+  &lt;c:set var="destLogin" value="/login/proxy?${loginDestination}=${requestContext.request.contextPath}/desktop"/&gt;
   &lt;c:set var="destLogout" value="/login/logout?${loginDestination}=${requestContext.request.contextPath}/desktop"/&gt;
   &lt;c:set var="destAccount" value="/desktop/my-account.psml?${loginDestination}=${requestContext.request.contextPath}/desktop"/&gt;
   &lt;c:set var="destContext" value="${portalContextPath}"/&gt;



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r887214 - in /portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login: login-xhtmlbasic.jsp login.jsp portal-login.jsp</title>
<author><name>ate@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200912.mbox/%3c20091204144647.931042388962@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204144647-931042388962@eris-apache-org%3e</id>
<updated>2009-12-04T14:46:47Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ate
Date: Fri Dec  4 14:46:46 2009
New Revision: 887214

URL: http://svn.apache.org/viewvc?rev=887214&amp;view=rev
Log:
Deriving "change password" link and destination url for logout dynamically for the LoginPortlet
to stay within the currently used pipeline, e.g. /portal, /ui, etc.

Modified:
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login-xhtmlbasic.jsp
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login.jsp
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/portal-login.jsp

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login-xhtmlbasic.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login-xhtmlbasic.jsp?rev=887214&amp;r1=887213&amp;r2=887214&amp;view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login-xhtmlbasic.jsp
(original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login-xhtmlbasic.jsp
Fri Dec  4 14:46:46 2009
@@ -28,9 +28,9 @@
 &lt;c:choose&gt;
   &lt;c:when test="${pageContext.request.userPrincipal != null}"&gt;
     &lt;fmt:message key="login.label.Welcome"&gt;&lt;fmt:param&gt;&lt;c:out value="${pageContext.request.userPrincipal.name}"/&gt;&lt;/fmt:param&gt;&lt;/fmt:message&gt;&lt;br/&gt;
-    &lt;a href='&lt;c:url context="${portalContextPath}" value="/login/logout"/&gt;'&gt;&lt;fmt:message
key="login.label.Logout"/&gt;&lt;/a&gt;
+    &lt;a href='&lt;c:url context="${portalContextPath}" value="/login/logout?${loginDestination}=${requestContext.portalURL.basePath}"/&gt;'&gt;&lt;fmt:message
key="login.label.Logout"/&gt;&lt;/a&gt;
     &lt;br/&gt;
-    &lt;a href='&lt;c:url context="${portalContextPath}" value="/portal/my-account.psml"/&gt;'&gt;&lt;fmt:message
key="login.label.ChangePassword"/&gt;&lt;/a&gt;
+    &lt;a href='&lt;c:url context="/" value="${requestContext.portalURL.basePath}/my-account.psml"/&gt;'&gt;&lt;fmt:message
key="login.label.ChangePassword"/&gt;&lt;/a&gt;
   &lt;/c:when&gt;
   &lt;c:otherwise&gt;
     &lt;%-- backdoor access to the portal session to get the login error count --%&gt;

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login.jsp?rev=887214&amp;r1=887213&amp;r2=887214&amp;view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login.jsp
(original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/login.jsp
Fri Dec  4 14:46:46 2009
@@ -30,12 +30,14 @@
 &lt;/c:if&gt;
 &lt;c:set var="encoder" value="${requestContext.request.parameterMap.encoder[0]}"/&gt;
 &lt;c:set var="destLogin" value="/login/proxy"/&gt;
-&lt;c:set var="destLogout" value="/login/logout"/&gt;
-&lt;c:set var="destAccount" value="/portal/my-account.psml"/&gt;
+&lt;c:set var="destLogout" value="/login/logout?${loginDestination}=${requestContext.portalURL.basePath}"/&gt;
+&lt;c:set var="destAccount" value="${requestContext.portalURL.basePath}/my-account.psml"/&gt;
+&lt;c:set var="destContext" value="/"/&gt;
 &lt;c:if test="${not empty encoder &amp;&amp; encoder == 'desktop'}"&gt;
   &lt;c:set var="destLogin" value="${destLogin}?${loginDestination}=${requestContext.request.contextPath}/desktop"/&gt;
-  &lt;c:set var="destLogout" value="${destLogout}?${loginDestination}=${requestContext.request.contextPath}/desktop"/&gt;
+  &lt;c:set var="destLogout" value="/login/logout?${loginDestination}=${requestContext.request.contextPath}/desktop"/&gt;
   &lt;c:set var="destAccount" value="/desktop/my-account.psml?${loginDestination}=${requestContext.request.contextPath}/desktop"/&gt;
+  &lt;c:set var="destContext" value="${portalContextPath}"/&gt;
 &lt;/c:if&gt;
 &lt;div class="portlet-section-text"&gt;
 &lt;c:choose&gt;
@@ -43,7 +45,7 @@
     &lt;fmt:message key="login.label.Welcome"&gt;&lt;fmt:param&gt;&lt;c:out value="${pageContext.request.userPrincipal.name}"/&gt;&lt;/fmt:param&gt;&lt;/fmt:message&gt;&lt;br&gt;
     &lt;a href='&lt;c:url context="${portalContextPath}" value="${destLogout}"/&gt;'&gt;&lt;fmt:message
key="login.label.Logout"/&gt;&lt;/a&gt;
     &lt;br&gt;
-    &lt;a href='&lt;c:url context="${portalContextPath}" value="${destAccount}"/&gt;'&gt;&lt;fmt:message
key="login.label.ChangePassword"/&gt;&lt;/a&gt;
+    &lt;a href='&lt;c:url context="${destContext}" value="${destAccount}"/&gt;'&gt;&lt;fmt:message
key="login.label.ChangePassword"/&gt;&lt;/a&gt;
   &lt;/c:when&gt;
   &lt;c:otherwise&gt;
     &lt;%-- backdoor access to the portal session to get the login error count --%&gt;

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/portal-login.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/portal-login.jsp?rev=887214&amp;r1=887213&amp;r2=887214&amp;view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/portal-login.jsp
(original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/portal-login.jsp
Fri Dec  4 14:46:46 2009
@@ -31,12 +31,14 @@
 &lt;/c:if&gt;
 &lt;c:set var="encoder" value="${requestContext.request.parameterMap.encoder[0]}"/&gt;
 &lt;c:set var="destLogin" value="/login/proxy"/&gt;
-&lt;c:set var="destLogout" value="/login/logout"/&gt;
-&lt;c:set var="destAccount" value="/portal/my-account.psml"/&gt;
+&lt;c:set var="destLogout" value="/login/logout?${loginDestination}=${requestContext.portalURL.basePath}"/&gt;
+&lt;c:set var="destAccount" value="${requestContext.portalURL.basePath}/my-account.psml"/&gt;
+&lt;c:set var="destContext" value="/"/&gt;
 &lt;c:if test="${not empty encoder &amp;&amp; encoder == 'desktop'}"&gt;
   &lt;c:set var="destLogin" value="${destLogin}?${loginDestination}=${requestContext.request.contextPath}/desktop"/&gt;
-  &lt;c:set var="destLogout" value="${destLogout}?${loginDestination}=${requestContext.request.contextPath}/desktop"/&gt;
+  &lt;c:set var="destLogout" value="/login/logout?${loginDestination}=${requestContext.request.contextPath}/desktop"/&gt;
   &lt;c:set var="destAccount" value="/desktop/my-account.psml?${loginDestination}=${requestContext.request.contextPath}/desktop"/&gt;
+  &lt;c:set var="destContext" value="${portalContextPath}"/&gt;
 &lt;/c:if&gt;
 
 &lt;c_rt:set var="contentType" value="&lt;%=renderRequest.getResponseContentType()%&gt;"/&gt;
@@ -80,7 +82,7 @@
     &lt;fmt:message key="login.label.Welcome"&gt;&lt;fmt:param&gt;&lt;c:out value="${pageContext.request.userPrincipal.name}"/&gt;&lt;/fmt:param&gt;&lt;/fmt:message&gt;&lt;br&gt;
     &lt;a href='&lt;c:url context="${portalContextPath}" value="${destLogout}"/&gt;'&gt;&lt;fmt:message
key="login.label.Logout"/&gt;&lt;/a&gt;
     &lt;br&gt;
-    &lt;a href='&lt;c:url context="${portalContextPath}" value="${destAccount}"/&gt;'&gt;&lt;fmt:message
key="login.label.ChangePassword"/&gt;&lt;/a&gt;
+    &lt;a href='&lt;c:url context="${destContext}" value="${destAccount}"/&gt;'&gt;&lt;fmt:message
key="login.label.ChangePassword"/&gt;&lt;/a&gt;
   &lt;/c:when&gt;
   &lt;c:otherwise&gt;
     &lt;%-- backdoor access to the portal session to get the login error count --%&gt;



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Apa-RSS</title>
<author><name>Gonzalo Aguilar Delgado &lt;gaguilar@aguilardelgado.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200912.mbox/%3c1259926585.7731.33.camel@azul1%3e"/>
<id>urn:uuid:%3c1259926585-7731-33-camel@azul1%3e</id>
<updated>2009-12-04T11:36:25Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Ok. I will send it to you today...


El jue, 03-12-2009 a las 12:59 -0800, David Sean Taylor escribiÃ³:

&gt; On Nov 30, 2009, at 5:50 AM, Woonsan Ko wrote:
&gt; 
&gt; &gt; Hi Gonzalo,
&gt; &gt;
&gt; &gt; I'd like to inform you of commons-logging issue.
&gt; &gt; Because the current commons-logging is not proper for cross-context  
&gt; &gt; application environment like portal, we removed commons-logging  
&gt; &gt; dependencies in jetspeed-2 and apa projects.
&gt; &gt; Please see https://issues.apache.org/jira/browse/JS2-972 for details.
&gt; &gt; It is recommended to use slf4j instead.
&gt; &gt;
&gt; +1
&gt; I will wait for a new patch with slf4j before committing this 
&gt; 
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
&gt; For additional commands, e-mail: jetspeed-dev-help@portals.apache.org
&gt; 


</pre>
</div>
</content>
</entry>
<entry>
<title>Re: wicket portlet</title>
<author><name>Woonsan Ko &lt;woon_san@yahoo.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200912.mbox/%3c652845.60200.qm@web51106.mail.re2.yahoo.com%3e"/>
<id>urn:uuid:%3c652845-60200-qm@web51106-mail-re2-yahoo-com%3e</id>
<updated>2009-12-04T09:27:09Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Hi Vlachogiannis,

There's a simple guideline here:

http://cwiki.apache.org/WICKET/portal-howto.html

Regards,

Woonsan



----- Original Message ----
&gt; From: Vlachogiannis Evangelos &lt;evlach@aegean.gr&gt;
&gt; To: Jetspeed Developers List &lt;jetspeed-dev@portals.apache.org&gt;
&gt; Sent: Fri, December 4, 2009 9:14:06 AM
&gt; Subject: wicket portlet
&gt; 
&gt; Hi list,
&gt; 
&gt; Is there a howto page for developing a wicket portlet for jetspeed? Some hints?
&gt; 
&gt; Thanks a lot,
&gt; Vangelis



      

---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>wicket portlet</title>
<author><name>Vlachogiannis Evangelos &lt;evlach@aegean.gr&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200912.mbox/%3c0C3E1DDB8CF69343B9A11D553C3550A683F210F9CF@hermes.aegean.gr%3e"/>
<id>urn:uuid:%3c0C3E1DDB8CF69343B9A11D553C3550A683F210F9CF@hermes-aegean-gr%3e</id>
<updated>2009-12-04T08:14:06Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Hi list,

Is there a howto page for developing a wicket portlet for jetspeed? Some hints?

Thanks a lot,
Vangelis


</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Apa-RSS</title>
<author><name>David Sean Taylor &lt;d.taylor@onehippo.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200912.mbox/%3c05A4B117-B0BF-4FB9-B22B-4FDE7986B8DB@onehippo.com%3e"/>
<id>urn:uuid:%3c05A4B117-B0BF-4FB9-B22B-4FDE7986B8DB@onehippo-com%3e</id>
<updated>2009-12-03T20:59:09Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

On Nov 30, 2009, at 5:50 AM, Woonsan Ko wrote:

&gt; Hi Gonzalo,
&gt;
&gt; I'd like to inform you of commons-logging issue.
&gt; Because the current commons-logging is not proper for cross-context  
&gt; application environment like portal, we removed commons-logging  
&gt; dependencies in jetspeed-2 and apa projects.
&gt; Please see https://issues.apache.org/jira/browse/JS2-972 for details.
&gt; It is recommended to use slf4j instead.
&gt;
+1
I will wait for a new patch with slf4j before committing this 

---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886901 - in /portals/jetspeed-2/portal/trunk: applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/layout.vm components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java</title>
<author><name>taylor@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200912.mbox/%3c20091203201540.0FA9F238899B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203201540-0FA9F238899B@eris-apache-org%3e</id>
<updated>2009-12-03T20:15:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: taylor
Date: Thu Dec  3 20:15:39 2009
New Revision: 886901

URL: http://svn.apache.org/viewvc?rev=886901&amp;view=rev
Log:
https://issues.apache.org/jira/browse/JS2-1084
-  fixing /portal pipeline

Modified:
    portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/layout.vm
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java

Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/layout.vm
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/layout.vm?rev=886901&amp;r1=886900&amp;r2=886901&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/layout.vm
(original)
+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/layout.vm
Thu Dec  3 20:15:39 2009
@@ -310,6 +310,7 @@
 	     
 	  #foreach($f in $column)
       ## Set up coordinates for this fragment
+      #if($f.isLocked() == false)
       #set($coords = $columnLayout.getCoordinate($f))	  
       #set($col = $coords.x)
       #set($lastRow = $columnLayout.getLastRowNumber($col))
@@ -381,6 +382,7 @@
 			    $f.renderedContent			
 		    #end
 		  &lt;/div&gt;
+		  #end
 		#end
 	&lt;/div&gt;
 	#set ($columnIndex = $columnIndex + 1)  

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java?rev=886901&amp;r1=886900&amp;r2=886901&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java
Thu Dec  3 20:15:39 2009
@@ -104,8 +104,7 @@
                 }
             }
         }        
-        if (!f.isLocked()) // FIXME: this is still not the desired behavior, need to check
if its docked 
-            renderer.renderNow(f, context);
+        renderer.renderNow(f, context);
     }
     
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886193 - in /portals/jetspeed-2/portal/trunk: components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/ jetspeed-portal-resources/src/main/...</title>
<author><name>woonsan@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200912.mbox/%3c20091202162547.838542388962@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202162547-838542388962@eris-apache-org%3e</id>
<updated>2009-12-02T16:25:47Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: woonsan
Date: Wed Dec  2 16:25:46 2009
New Revision: 886193

URL: http://svn.apache.org/viewvc?rev=886193&amp;view=rev
Log:
JS2-1087: Makes service beans leverage spring dependency injection.

Added:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/JetspeedJaxrsApplication.java
  (with props)
Modified:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
    portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java?rev=886193&amp;r1=886192&amp;r2=886193&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
Wed Dec  2 16:25:46 2009
@@ -38,6 +38,7 @@
 {
     protected HttpServlet servlet;
     protected ServletConfig config;
+    protected boolean servletInitialized;
 
     public ServletDelegatingValve(HttpServlet servlet, ServletConfig config)
     {
@@ -48,19 +49,21 @@
     @Override
     public void initialize() throws PipelineException
     {
-        try
-        {
-            servlet.init(config);
-        }
-        catch (Exception e)
-        {
-            throw new PipelineException(e);
-        }
     }
-
+    
     public void destroy()
     {
-        servlet.destroy();
+        if (servlet != null &amp;&amp; servletInitialized)
+        {
+            try
+            {
+                servlet.destroy();
+            }
+            finally
+            {
+                servletInitialized = false;
+            }
+        }
     }
 
     @Override
@@ -68,6 +71,11 @@
     {
         try
         {
+            if (!servletInitialized)
+            {
+                initServlet();
+            }
+            
             servlet.service(request.getRequest(), request.getResponse());
         }
         catch (Exception e)
@@ -78,6 +86,22 @@
         // continue
         context.invokeNext(request);
     }
+    
+    private synchronized void initServlet() throws PipelineException
+    {
+        if (!servletInitialized)
+        {
+            try
+            {
+                servlet.init(config);
+                servletInitialized = true;
+            }
+            catch (Exception e)
+            {
+                throw new PipelineException(e);
+            }
+        }
+    }
 
     public static class ServletConfigImpl implements ServletConfig
     {

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/JetspeedJaxrsApplication.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/JetspeedJaxrsApplication.java?rev=886193&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/JetspeedJaxrsApplication.java
(added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/JetspeedJaxrsApplication.java
Wed Dec  2 16:25:46 2009
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.rest;
+
+import java.util.Set;
+import java.util.HashSet;
+
+import javax.ws.rs.core.Application;
+
+import org.apache.jetspeed.Jetspeed;
+
+/**
+ * JetspeedJaxrsApplication
+ * 
+ * @version $Id$
+ */
+public class JetspeedJaxrsApplication extends Application
+{
+    
+    public static final String CLASSES_ID = JetspeedJaxrsApplication.class.getPackage().getName()
+ ".classes";
+    
+    public static final String SINGLETONS_ID = JetspeedJaxrsApplication.class.getPackage().getName()
+ ".singletons";
+    
+    
+    private Set&lt;Class&lt;?&gt;&gt; classes = new HashSet&lt;Class&lt;?&gt;&gt;();
+    
+    private Set&lt;Object&gt; singletons = new HashSet&lt;Object&gt;();
+    
+    public JetspeedJaxrsApplication()
+    {
+        super();
+        
+        String classesId = System.getProperty(CLASSES_ID);
+        
+        if (classesId != null &amp;&amp; Jetspeed.getComponentManager().containsComponent(classesId))
+        {
+            classes = (Set&lt;Class&lt;?&gt;&gt;) Jetspeed.getComponentManager().getComponent(classesId);
+        }
+        
+        String singletonsId = System.getProperty(SINGLETONS_ID);
+        
+        if (singletonsId != null &amp;&amp; Jetspeed.getComponentManager().containsComponent(singletonsId))
+        {
+            singletons = (Set&lt;Object&gt;) Jetspeed.getComponentManager().getComponent(singletonsId);
+        }
+    }
+    
+    @Override
+    public Set&lt;Class&lt;?&gt;&gt; getClasses()
+    {
+        return classes;
+    }
+    
+    public void setClasses(final Set&lt;Class&lt;?&gt;&gt; classes)
+    {
+        this.classes = classes;
+    }
+    
+    @Override
+    public Set&lt;Object&gt; getSingletons()
+    {
+        return singletons;
+    }
+    
+    public void setSingletons(final Set&lt;Object&gt; singletons)
+    {
+        this.singletons = singletons;
+    }
+    
+}
\ No newline at end of file

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/JetspeedJaxrsApplication.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/JetspeedJaxrsApplication.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/JetspeedJaxrsApplication.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java?rev=886193&amp;r1=886192&amp;r2=886193&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
Wed Dec  2 16:25:46 2009
@@ -33,7 +33,6 @@
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.math.NumberUtils;
-import org.apache.jetspeed.Jetspeed;
 import org.apache.jetspeed.components.portletregistry.PortletRegistry;
 import org.apache.jetspeed.om.portlet.PortletApplication;
 import org.apache.jetspeed.om.portlet.PortletDefinition;
@@ -67,25 +66,21 @@
     @Context
     private ServletContext servletContext;
     
-    @Context
-    private HttpServletRequest servletRequest;
-    
-    @Context
-    private UriInfo uriInfo;
-    
     private PortletRegistry portletRegistry;
     
     private SearchEngine searchEngine;
     
-    public PortletRegistryService()
+    public PortletRegistryService(PortletRegistry portletRegistry, SearchEngine searchEngine)
     {
-        portletRegistry = (PortletRegistry) Jetspeed.getComponentManager().getComponent(PortletRegistry.class);
-        searchEngine = (SearchEngine) Jetspeed.getComponentManager().getComponent(SearchEngine.class);
+        this.portletRegistry = portletRegistry;
+        this.searchEngine = searchEngine;
     }
     
     @GET
     @Path("/application/{path:.*}")
-    public PortletApplicationBeans getPortletApplication(@PathParam("path") List&lt;PathSegment&gt;
pathSegments,
+    public PortletApplicationBeans getPortletApplication(@Context HttpServletRequest servletRequest,
+                                                         @Context UriInfo uriInfo,
+                                                         @PathParam("path") List&lt;PathSegment&gt;
pathSegments,
                                                          @QueryParam("query") String queryParam,

                                                          @QueryParam("begin") String beginIndexParam,
                                                          @QueryParam("max") String maxResultsParam)
@@ -152,7 +147,9 @@
     
     @GET
     @Path("/definition/{path:.*}")
-    public PortletDefinitionBeans getPortletDefinition(@PathParam("path") List&lt;PathSegment&gt;
pathSegments, 
+    public PortletDefinitionBeans getPortletDefinition(@Context HttpServletRequest servletRequest,
+                                                       @Context UriInfo uriInfo,
+                                                       @PathParam("path") List&lt;PathSegment&gt;
pathSegments, 
                                                        @QueryParam("query") String queryParam,

                                                        @QueryParam("begin") String beginIndexParam,
                                                        @QueryParam("max") String maxResultsParam)

Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml?rev=886193&amp;r1=886192&amp;r2=886193&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
(original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
Wed Dec  2 16:25:46 2009
@@ -18,7 +18,9 @@
 &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"&gt;
   
+  &lt;!-- To enable log4j logging instead of the default java logging of cxf. --&gt;
   &lt;bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"&gt;
+    &lt;meta key="j2:cat" value="default" /&gt;
     &lt;property name="targetClass" value="java.lang.System"/&gt;
     &lt;property name="targetMethod" value="setProperty"/&gt;
     &lt;property name="arguments"&gt;
@@ -29,18 +31,32 @@
     &lt;/property&gt;
   &lt;/bean&gt;
   
+  &lt;!-- To set resource singletons bean id properties --&gt;
+  &lt;bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"&gt;
+    &lt;meta key="j2:cat" value="default" /&gt;
+    &lt;property name="targetClass" value="java.lang.System"/&gt;
+    &lt;property name="targetMethod" value="setProperty"/&gt;
+    &lt;property name="arguments"&gt;
+      &lt;list&gt;
+        &lt;value&gt;org.apache.jetspeed.services.rest.singletons&lt;/value&gt;
+        &lt;value&gt;org.apache.jetspeed.services.rest.singletons&lt;/value&gt;
+      &lt;/list&gt;
+    &lt;/property&gt;
+  &lt;/bean&gt;
+  
+  &lt;!-- Delegating CXF Servlet --&gt;
   &lt;bean id="cxfServlet" class="org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet"&gt;
     &lt;meta key="j2:cat" value="default" /&gt;
   &lt;/bean&gt;
   
+  &lt;!-- CXF Servlet Config --&gt;
   &lt;bean id="cxfServletConfig" class="org.apache.jetspeed.pipeline.valve.impl.ServletDelegatingValve$ServletConfigImpl"&gt;
     &lt;meta key="j2:cat" value="default" /&gt;
     &lt;constructor-arg value="CXFNonSpringJaxrsServlet" /&gt;
     &lt;constructor-arg&gt;
       &lt;props&gt;
-        &lt;!-- White space separted resource class names --&gt;
-        &lt;prop key="jaxrs.serviceClasses"&gt;
-          org.apache.jetspeed.services.rest.PortletRegistryService
+        &lt;prop key="javax.ws.rs.Application"&gt;
+          org.apache.jetspeed.services.rest.JetspeedJaxrsApplication
         &lt;/prop&gt;
       &lt;/props&gt;
     &lt;/constructor-arg&gt;
@@ -52,4 +68,21 @@
     &lt;/property&gt;
   &lt;/bean&gt;
   
+  &lt;!-- JAX-RS Service Singleton Resource Beans  --&gt;
+  &lt;bean id="org.apache.jetspeed.services.rest.singletons" class="org.springframework.beans.factory.config.SetFactoryBean"&gt;
+    &lt;meta key="j2:cat" value="default" /&gt;
+    &lt;property name="sourceSet"&gt;
+      &lt;set&gt;
+        &lt;ref bean="jaxrsPortletRegistryService" /&gt;
+      &lt;/set&gt;
+    &lt;/property&gt;
+  &lt;/bean&gt;
+  
+  &lt;!-- Portlet Registry JAX-RS Service --&gt;
+  &lt;bean id="jaxrsPortletRegistryService" class="org.apache.jetspeed.services.rest.PortletRegistryService"&gt;
+    &lt;meta key="j2:cat" value="default" /&gt;
+    &lt;constructor-arg ref="org.apache.jetspeed.components.portletregistry.PortletRegistry"
/&gt;
+    &lt;constructor-arg ref="org.apache.jetspeed.search.SearchEngine" /&gt;
+  &lt;/bean&gt;
+  
 &lt;/beans&gt;
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Jetspeed 2.2.0</title>
<author><name>&quot;Smith, Nathan&quot; &lt;nsmith@ahbelo.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200912.mbox/%3cCEA7E9B14CFAA746A4DA975BB2AFD73C14FBAA9F23@MBX11.EXCHPROD.USA.NET%3e"/>
<id>urn:uuid:%3cCEA7E9B14CFAA746A4DA975BB2AFD73C14FBAA9F23@MBX11-EXCHPROD-USA-NET%3e</id>
<updated>2009-12-01T21:01:25Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
I'm getting the following error when I try to create my own Jetspeed2 portal and portal app.
 I'm not quite sure what's causing the issue.  It worked when I created the jetexpress example,
but the j2-admin failed once I tried creating my own.  Any suggestions would be greatly appreciated.

&gt;From jetspeed.log:

ERROR org.apache.jetspeed.engine.JetspeedEngine - org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'portalURLValve' defined in ServletContext resource [/WEB-INF/assembly/pipelines.xml]:
Cannot resolve reference to bean 'NavigationalStateComponent' while setting constructor argument;
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'NavigationalStateComponent' defined in ServletContext resource [/WEB-INF/assembly/portal-url-generation.xml]:
Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException:
Could not instantiate bean class [org.apache.jetspeed.container.state.impl.JetspeedNavigationalStateComponent]:
Constructor threw exception; nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'org.apache.jetspeed.request.RequestContextComponent' defined
in ServletContext resource [/WEB-INF/assembly/jetspeed-spring.xml]: Cannot resolve reference
to bean 'org.apache.jetspeed.components.portletregistry.PortletRegistry' while setting constructor
argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'org.apache.jetspeed.components.portletregistry.PortletRegistry' defined
in ServletContext resource [/WEB-INF/assembly/registry.xml]: Cannot resolve reference to bean
'portletRegistryImpl' while setting bean property 'target'; nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'portletRegistryImpl' defined in ServletContext resource [/WEB-INF/assembly/registry.xml]:
Cannot resolve reference to bean 'org.apache.jetspeed.components.portletpreferences.PortletPreferencesProvider'
while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'org.apache.jetspeed.components.portletpreferences.PortletPreferencesProvider'
defined in ServletContext resource [/WEB-INF/assembly/registry.xml]: Cannot resolve reference
to bean 'org.apache.pluto.services.PreferencesService' while setting bean property 'target';
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'org.apache.pluto.services.PreferencesService' defined in ServletContext resource
[/WEB-INF/assembly/registry.xml]: Cannot resolve reference to bean 'portletFactory' while
setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'portletFactory' defined in ServletContext resource [/WEB-INF/assembly/registry.xml]:
Initialization of bean failed; nested exception is java.lang.LinkageError: loader constraint
violation: loader (instance of org/apache/catalina/loader/StandardClassLoader) previously
initiated loading for a different type with name "javax/portlet/PreferencesValidator"
2009-12-01 13:43:10,217 [main] ERROR org.apache.jetspeed.engine.JetspeedServlet - Jetspeed:
init() failed:

Regards,

Nathan Smith


</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885673 - in /portals/jetspeed-2/portal/trunk: applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/ applications/jetspeed/src/main/webapp/WEB-INF/pages/ applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/ compon...</title>
<author><name>taylor@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200912.mbox/%3c20091201051037.8E22B238888C@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091201051037-8E22B238888C@eris-apache-org%3e</id>
<updated>2009-12-01T05:10:36Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: taylor
Date: Tue Dec  1 05:10:34 2009
New Revision: 885673

URL: http://svn.apache.org/viewvc?rev=885673&amp;view=rev
Log:
https://issues.apache.org/jira/browse/JS2-1084
- dabbling with using templates and lock status on fragments
- adding a template fragment (tpsml) for merging the toolbox and navigator into all pages
under /
  (i am trying to preserve the /portal pipeline behavior for now)

  will give templates a more serious look once I sort out some nesting issues...

Added:
    portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/definition.fpsml
    portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/template.tpsml
Modified:
    portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui.jsp
    portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/default-page.psml
    portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/layout.vm
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/GetPageAction.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java
    portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/conf/jetspeed/jetspeed.properties
    portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/seed/j2-seed.xml

Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui.jsp?rev=885673&amp;r1=885672&amp;r2=885673&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui.jsp
(original)
+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui.jsp
Tue Dec  1 05:10:34 2009
@@ -145,22 +145,19 @@
             int subindex = 0;
             for (ContentFragment fragment : collections)
             {
-                if (!(fragment.getName().equals("j2-admin::JetspeedToolbox") || fragment.getName().equals("j2-admin::JetspeedNavigator")))
-                {
-                    //String content = jetui.renderPortletWindow(fragment.getId(), fragment.getName(),
rc);
-                    String content = jetui.getRenderedContent((ContentFragment)fragment,
rc);
-                    request.setAttribute("content", content);                    
-                    String decorator = fragment.getDecorator(); 
-            		if (decorator == null)
-            		    decorator = pageDec;
-                    request.setAttribute("decorator", decorator);                    
-                    request.setAttribute("fragment", fragment);      
-                    request.setAttribute("coordinate", columnLayout.getCoordinate(fragment));
+                   //String content = jetui.renderPortletWindow(fragment.getId(), fragment.getName(),
rc);
+                   String content = jetui.getRenderedContent((ContentFragment)fragment, rc);
+                   request.setAttribute("content", content);                    
+                   String decorator = fragment.getDecorator(); 
+                   if (decorator == null)
+    	       		    decorator = pageDec;
+                   request.setAttribute("decorator", decorator);                    
+                   request.setAttribute("fragment", fragment);      
+                   request.setAttribute("coordinate", columnLayout.getCoordinate(fragment));
 %&gt;
 &lt;jsp:include page="jetui-portlet.jsp"/&gt;
 &lt;%          
                     subindex++;
-                }
             }
             index++;
 %&gt;

Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/default-page.psml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/default-page.psml?rev=885673&amp;r1=885672&amp;r2=885673&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/default-page.psml
(original)
+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/default-page.psml
Tue Dec  1 05:10:34 2009
@@ -46,10 +46,10 @@
       &lt;property layout="TwoColumns" name="row" value="3" /&gt;
       &lt;property layout="TwoColumns" name="column" value="1" /&gt;
     &lt;/fragment&gt;                                
-    &lt;fragment id="dp-24" type="portlet" name="demo::WeatherPortlet"&gt;
+    &lt;fragment-reference id="dp-24-wp-reference" refid="wp-definition"&gt;
         &lt;property name="row" value="4"/&gt;
         &lt;property name="column" value="1"/&gt;
-    &lt;/fragment&gt;
+    &lt;/fragment-reference&gt;
     
     &lt;fragment id="dp-7" type="portlet" name="demo::PickANumberPortlet" &gt;
       &lt;property layout="TwoColumns" name="row" value="1" /&gt;

Added: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/definition.fpsml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/definition.fpsml?rev=885673&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/definition.fpsml
(added)
+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/definition.fpsml
Tue Dec  1 05:10:34 2009
@@ -0,0 +1,9 @@
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;fragment-definition id="definition"
+    xmlns="http://portals.apache.org/jetspeed"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+    xsi:schemaLocation="http://portals.apache.org/jetspeed http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd"&gt;
+
+  &lt;title&gt;DEFINITION&lt;/title&gt;
+  &lt;fragment id="wp-definition" type="portlet" name="demo::WeatherPortlet"/&gt;
+&lt;/fragment-definition&gt;

Added: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/template.tpsml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/template.tpsml?rev=885673&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/template.tpsml
(added)
+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/template.tpsml
Tue Dec  1 05:10:34 2009
@@ -0,0 +1,41 @@
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;page-template id="definition"
+    xmlns="http://portals.apache.org/jetspeed"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+    xsi:schemaLocation="http://portals.apache.org/jetspeed http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd"&gt;
+
+  &lt;title&gt;TEMPLATE&lt;/title&gt;
+  &lt;fragment id="template-top" type="layout" name="jetspeed-layouts::VelocityOneColumn"&gt;
+
+    &lt;fragment id="_jsNavigator-1001" type="portlet" name="j2-admin::JetspeedNavigator"&gt;
+  	        &lt;property name="z" value="201.0"&gt;&lt;/property&gt;
+            &lt;property name="row" value="0"&gt;&lt;/property&gt;
+            &lt;property name="width" value="267.0"&gt;&lt;/property&gt;
+            &lt;property name="height" value="388.0"&gt;&lt;/property&gt;
+            &lt;property name="column" value="0"&gt;&lt;/property&gt;
+            &lt;property name="y" value="104.0"&gt;&lt;/property&gt;
+            &lt;property name="x" value="1.0"&gt;&lt;/property&gt;
+            &lt;property name="jsdesktop" value="staticpos=false;fitheight=false"&gt;&lt;/property&gt;
                       
+    &lt;/fragment&gt;
+    &lt;page-fragment id="page-template"&gt;
+      &lt;property name="row" value="1"/&gt;
+    &lt;/page-fragment&gt;
+    
+    &lt;fragment id="_jsToolbox-1001" type="portlet" name="j2-admin::JetspeedToolbox"&gt;
+  	        &lt;property name="z" value="201.0"&gt;&lt;/property&gt;
+            &lt;property name="row" value="2"&gt;&lt;/property&gt;
+            &lt;property name="width" value="267.0"&gt;&lt;/property&gt;
+            &lt;property name="height" value="388.0"&gt;&lt;/property&gt;
+            &lt;property name="column" value="0"&gt;&lt;/property&gt;
+            &lt;property name="y" value="500.0"&gt;&lt;/property&gt;
+            &lt;property name="x" value="1.0"&gt;&lt;/property&gt;
+            &lt;property name="jsdesktop" value="staticpos=false;fitheight=false"&gt;&lt;/property&gt;
                       
+    &lt;/fragment&gt;
+    
+&lt;!--    
+    &lt;fragment-reference id="page-template-wp-reference" refid="wp-definition"&gt;
+      &lt;property name="row" value="1"/&gt;
+    &lt;/fragment-reference&gt;
+  --&gt;   
+  &lt;/fragment&gt;  
+&lt;/page-template&gt;

Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/layout.vm
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/layout.vm?rev=885673&amp;r1=885672&amp;r2=885673&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/layout.vm
(original)
+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/layout.vm
Tue Dec  1 05:10:34 2009
@@ -309,7 +309,6 @@
 	     style="float:${columnFloat}; width:${columnWidth};"&gt;
 	     
 	  #foreach($f in $column)
-	  #if ($f.getName() != "j2-admin::JetspeedNavigator" &amp;&amp; $f.getName() != "j2-admin::JetspeedToolbox")
 	     
       ## Set up coordinates for this fragment
       #set($coords = $columnLayout.getCoordinate($f))	  
       #set($col = $coords.x)
@@ -382,7 +381,6 @@
 			    $f.renderedContent			
 		    #end
 		  &lt;/div&gt;
-		  #end
 		#end
 	&lt;/div&gt;
 	#set ($columnIndex = $columnIndex + 1)  

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java?rev=885673&amp;r1=885672&amp;r2=885673&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java
Tue Dec  1 05:10:34 2009
@@ -103,13 +103,9 @@
                     aggregateAndRender(child, context, page);
                 }
             }
-        }
-        
-        // ** DST: DEMO: Hack
-        if (!"j2-admin::JetspeedNavigator".equals(f.getName()) &amp;&amp; !"j2-admin::JetspeedToolbox".equals(f.getName()))
       
-        {
+        }        
+        if (!f.isLocked()) // FIXME: this is still not the desired behavior, need to check
if its docked 
             renderer.renderNow(f, context);
-        }
     }
     
 }

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/GetPageAction.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/GetPageAction.java?rev=885673&amp;r1=885672&amp;r2=885673&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/GetPageAction.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/GetPageAction.java
Tue Dec  1 05:10:34 2009
@@ -32,11 +32,11 @@
 import org.apache.jetspeed.decoration.Theme;
 import org.apache.jetspeed.layout.PortletActionSecurityBehavior;
 import org.apache.jetspeed.om.page.BaseFragmentElement;
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.page.ContentPage;
 import org.apache.jetspeed.om.page.Fragment;
 import org.apache.jetspeed.om.page.Page;
 import org.apache.jetspeed.page.PageManager;
-import org.apache.jetspeed.page.PageNotFoundException;
-import org.apache.jetspeed.page.document.NodeException;
 import org.apache.jetspeed.portalsite.PortalSiteRequestContext;
 import org.apache.jetspeed.profiler.impl.ProfilerValveImpl;
 import org.apache.jetspeed.request.RequestContext;
@@ -93,20 +93,16 @@
             // Run the Decoration valve to get actions
             decorationValve.invoke( requestContext, null );
             
-            Page page = requestContext.getPage().getPage();                        
+            ContentPage page = requestContext.getPage();                        
             String pageName = getActionParameter( requestContext, PAGE );
-            if ( pageName != null )
-            {
-                page = retrievePage( requestContext, pageName );
-            }
+//            if ( pageName != null )
+//            {
+//                page = retrievePage( requestContext, pageName );
+//            }
             if (page == null)
             {
                 throw new AJAXException("Missing current page or '" + PAGE + "' parameter");
-            }
-            
-            // ** DST: DEMO: Hack
-            insertNavigator(page);           
-            
+            }            
             resultMap.put( STATUS, status );
             resultMap.put( PAGE, page );
             
@@ -133,7 +129,7 @@
             
             String profiledPath = siteRequestContext.getPage().getPath();
             resultMap.put( PROFILED_PATH, profiledPath );
-            putSecurityInformation( resultMap, page );
+            putSecurityInformation( resultMap, page.getPage() ); //TODO: REVIEW: RANDY 
      
             PageActionAccess pageActionAccess = (PageActionAccess)requestContext.getAttribute(
PortalReservedParameters.PAGE_EDIT_ACCESS_ATTRIBUTE );
             Boolean userIsAnonymous = Boolean.TRUE;
@@ -170,43 +166,43 @@
             String singleLayoutId = getActionParameter( requestContext, LAYOUTID );
             if ( singleLayoutId != null )
             {   // build page representation with single layout
-                BaseFragmentElement singleLayoutFragment = page.getFragmentById( singleLayoutId
);
-                if ( ! ( singleLayoutFragment instanceof Fragment) )
-                {
-                    throw new Exception( "layout id not found: " + singleLayoutId );
-                }
-                Fragment currentLayoutFragment = (Fragment) singleLayoutFragment;
-                Fragment currentPortletFragment = null;
-                
-                String singlePortletId = getActionParameter( requestContext, PORTLETENTITY
);
-                if ( singlePortletId != null )
-                {
-                    Iterator layoutChildIter = currentLayoutFragment.getFragments().iterator();
-                    while ( layoutChildIter.hasNext() )
-                    {
-                        Fragment childFrag = (Fragment)layoutChildIter.next();
-                        if ( childFrag != null )
-                        {
-                            if ( singlePortletId.equals( childFrag.getId() ) )
-                            {
-                                currentPortletFragment = childFrag;
-                                break;
-                            }
-                        }
-                    }
-                    if ( currentPortletFragment == null )
-                    {
-                        throw new Exception( "portlet id " + singlePortletId + " not found
in layout " + singleLayoutId );
-                    }
-                    resultMap.put( "portletsingleId", currentPortletFragment.getId() );
-                }
-                
-                retrieveFragmentSpecialProperties( requestContext, currentLayoutFragment,
fragSizes, portletIcons );
-                resultMap.put( "layoutsingle", currentLayoutFragment );
+//                BaseFragmentElement singleLayoutFragment = page.getPage().getFragmentById(
singleLayoutId ); //TODO: REVIEW: RANDY
+//                if ( ! ( singleLayoutFragment instanceof ContentFragment) )
+//                {
+//                    throw new Exception( "layout id not found: " + singleLayoutId );
+//                }
+//                ContentFragment currentLayoutFragment =  singleLayoutFragment;
+//                ContentFragment currentPortletFragment = null;
+//                
+//                String singlePortletId = getActionParameter( requestContext, PORTLETENTITY
);
+//                if ( singlePortletId != null )
+//                {
+//                    Iterator layoutChildIter = currentLayoutFragment.getFragments().iterator();
+//                    while ( layoutChildIter.hasNext() )
+//                    {
+//                        Fragment childFrag = (Fragment)layoutChildIter.next();
+//                        if ( childFrag != null )
+//                        {
+//                            if ( singlePortletId.equals( childFrag.getId() ) )
+//                            {
+//                                currentPortletFragment = childFrag;
+//                                break;
+//                            }
+//                        }
+//                    }
+//                    if ( currentPortletFragment == null )
+//                    {
+//                        throw new Exception( "portlet id " + singlePortletId + " not found
in layout " + singleLayoutId );
+//                    }
+//                    resultMap.put( "portletsingleId", currentPortletFragment.getId() );
+//                }
+//                
+//                retrieveFragmentSpecialProperties( requestContext, currentLayoutFragment,
fragSizes, portletIcons );
+//                resultMap.put( "layoutsingle", currentLayoutFragment );
             }
-            else if (page.getRootFragment() instanceof Fragment)
+            else if (page.getRootFragment() instanceof ContentFragment)
             {
-                retrieveFragmentSpecialProperties( requestContext, (Fragment)page.getRootFragment(),
fragSizes, portletIcons );
+                retrieveFragmentSpecialProperties( requestContext, page.getRootFragment(),
fragSizes, portletIcons );
             }
             else
             {
@@ -239,7 +235,7 @@
     }        
     
     
-    protected void retrieveFragmentSpecialProperties( RequestContext requestContext, Fragment
frag, Map fragSizes, Map portletIcons )
+    protected void retrieveFragmentSpecialProperties( RequestContext requestContext, ContentFragment
frag, Map fragSizes, Map portletIcons )
     {
         if ( frag == null )
         {
@@ -259,7 +255,7 @@
     			Iterator childFragIter = childFragments.iterator();
     			while ( childFragIter.hasNext() )
     			{
-    				Fragment childFrag = (Fragment)childFragIter.next();
+    				ContentFragment childFrag = (ContentFragment)childFragIter.next();
                     retrieveFragmentSpecialProperties( requestContext, childFrag, fragSizes,
portletIcons );
     			}
     		}
@@ -288,62 +284,5 @@
         }
     }
     
-    private void insertNavigator(Page page)
-    {
-        Page nav;
-        try
-        {
-            if (page.getRootFragment() instanceof Fragment)
-            {
-                Fragment root = (Fragment)page.getRootFragment();
-                boolean found = findFragment(root);
-                if (!found)
-                {
-                    nav = this.pageManager.getPage("/_user/template/navigator.psml");
-                    if (nav.getRootFragment() instanceof Fragment)
-                    {
-                        List&lt;Fragment&gt; navFragments = ((Fragment)nav.getRootFragment()).getFragments();
-                        Fragment source1 = navFragments.get(0);
-                        root.getFragments().add(0, source1);
-                        Fragment source2 = navFragments.get(1);
-                        root.getFragments().add(1, source2);
-                        // save?
-                    }
-                }
-            }
-        }
-        catch (PageNotFoundException e)
-        {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-        catch (NodeException e)
-        {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }        
-    }
-    
-    private boolean findFragment(Fragment f)
-    {
-        List&lt;Fragment&gt; fragments = f.getFragments();
-        
-        //if ("_jsNavigator-1001".equals(f.getId())) // BUG: won't work on db psml
-        if ("j2-admin::JetspeedNavigator".equals(f.getName()) || "j2-admin::JetspeedToolbox".equals(f.getName()))
-        {
-            return true;
-        }
-        
-        if (fragments != null &amp;&amp; !fragments.isEmpty())
-        {
-            for (Fragment child : fragments)
-            {
-                boolean found = findFragment(child);
-                if (found)
-                    return true;
-            }
-        }
-        return false;
-    }
     
 }

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java?rev=885673&amp;r1=885672&amp;r2=885673&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java
Tue Dec  1 05:10:34 2009
@@ -64,9 +64,20 @@
         {
             RequestDispatcher dispatcher = request.getRequest().getRequestDispatcher(layoutTemplate);
             request.setAttribute("jetui", this);
+            ContentFragment rootFragment = request.getPage().getRootFragment();     
+            if (rootFragment.isLocked())
+            {
+                for (ContentFragment f : (List&lt;ContentFragment&gt;)rootFragment.getFragments())
+                {
+                    if (!f.isLocked() &amp;&amp; f.getType().equals(ContentFragment.LAYOUT))
+                    {
+                        rootFragment = f;
+                        break;
+                    }
+                }
+            }            
             if (maximized == null)
             {
-                ContentFragment rootFragment = request.getPage().getRootFragment();
                 String jetspeedLayout = rootFragment.getName();
                 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                 // BOGUS: I would prefer to put all layout information directly in PSML,
not in portlet.xml, right now its mixed
@@ -93,13 +104,13 @@
                     fragmentColumnSizes = "25%,25%,25%,25%";                            
   
                 }                
                 String [] fragmentColumnSizesArray = fragmentColumnSizes.split("\\,");
-                /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
           
+                /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                 ColumnLayout columnLayout = new ColumnLayout(numberOfColumns, layoutType,
rootFragment.getFragments(), fragmentColumnSizesArray);
                 request.setAttribute("columnLayout", columnLayout);
             }
             else
             {
-                ColumnLayout columnLayout = new ColumnLayout(1, "maximized", request.getPage().getRootFragment().getFragments(),
new String[] { "100%" });
+                ColumnLayout columnLayout = new ColumnLayout(1, "maximized", rootFragment.getFragments(),
new String[] { "100%" });
                 request.setAttribute("columnLayout", columnLayout);                
             }
             dispatcher.include(request.getRequest(), request.getResponse());            

Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/conf/jetspeed/jetspeed.properties
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/conf/jetspeed/jetspeed.properties?rev=885673&amp;r1=885672&amp;r2=885673&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/conf/jetspeed/jetspeed.properties
(original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/conf/jetspeed/jetspeed.properties
Tue Dec  1 05:10:34 2009
@@ -363,3 +363,11 @@
 # Registration default profiling rules assigned during registration or new user creation
 # comma separated list
 registration.rules.default = 
+
+#-------------------------------------------------------------------------
+# J E T U I
+#-------------------------------------------------------------------------
+# client | server
+jetui.render.engine = server
+# xml | json
+jetui.ajax.transport = json

Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/seed/j2-seed.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/seed/j2-seed.xml?rev=885673&amp;r1=885672&amp;r2=885673&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/seed/j2-seed.xml
(original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/seed/j2-seed.xml
Tue Dec  1 05:10:34 2009
@@ -316,11 +316,11 @@
 			&lt;userinfo&gt;
 				&lt;preference&gt;
 					&lt;name value="user.name.given"/&gt;
-					&lt;value value="Test Dude"/&gt;
+					&lt;value value="Portal"/&gt;
 				&lt;/preference&gt;
 				&lt;preference&gt;
 					&lt;name value="user.name.family"/&gt;
-					&lt;value value="Dudley"/&gt;
+					&lt;value value="Administrator"/&gt;
 				&lt;/preference&gt;
 			&lt;/userinfo&gt;
 			&lt;Rules/&gt;
@@ -330,7 +330,16 @@
 			&lt;roles&gt;user,manager&lt;/roles&gt;
 			&lt;groups&gt;&lt;/groups&gt;
 			&lt;preferences/&gt;
-			&lt;userinfo/&gt;
+			&lt;userinfo&gt;
+				&lt;preference&gt;
+					&lt;name value="user.name.given"/&gt;
+					&lt;value value="Site"/&gt;
+				&lt;/preference&gt;
+				&lt;preference&gt;
+					&lt;name value="user.name.family"/&gt;
+					&lt;value value="Manager"/&gt;
+				&lt;/preference&gt;
+			&lt;/userinfo&gt;
 			&lt;Rules/&gt;
 		&lt;/User&gt;
 		&lt;User name="user"&gt;
@@ -338,7 +347,16 @@
 			&lt;roles&gt;user&lt;/roles&gt;
 			&lt;groups&gt;accounting&lt;/groups&gt;
 			&lt;preferences/&gt;
-			&lt;userinfo/&gt;
+			&lt;userinfo&gt;
+				&lt;preference&gt;
+					&lt;name value="user.name.given"/&gt;
+					&lt;value value="Portal"/&gt;
+				&lt;/preference&gt;
+				&lt;preference&gt;
+					&lt;name value="user.name.family"/&gt;
+					&lt;value value="User"/&gt;
+				&lt;/preference&gt;
+			&lt;/userinfo&gt;
 			&lt;Rules&gt;
 				&lt;Rule locator="menu" rule="role-group"/&gt;
 				&lt;Rule locator="page" rule="j2"/&gt;
@@ -349,7 +367,16 @@
 			&lt;roles&gt;user&lt;/roles&gt;
 			&lt;groups&gt;accounting&lt;/groups&gt;
 			&lt;preferences/&gt;
-			&lt;userinfo/&gt;
+			&lt;userinfo&gt;
+				&lt;preference&gt;
+					&lt;name value="user.name.given"/&gt;
+					&lt;value value="Local"/&gt;
+				&lt;/preference&gt;
+				&lt;preference&gt;
+					&lt;name value="user.name.family"/&gt;
+					&lt;value value="User"/&gt;
+				&lt;/preference&gt;
+			&lt;/userinfo&gt;
 			&lt;Rules&gt;
 				&lt;Rule locator="page" rule="localhost-fallback"/&gt;
 			&lt;/Rules&gt;
@@ -359,7 +386,16 @@
 			&lt;roles&gt;user&lt;/roles&gt;
 			&lt;groups&gt;accounting&lt;/groups&gt;
 			&lt;preferences/&gt;
-			&lt;userinfo/&gt;
+			&lt;userinfo&gt;
+				&lt;preference&gt;
+					&lt;name value="user.name.given"/&gt;
+					&lt;value value="Sublocal"/&gt;
+				&lt;/preference&gt;
+				&lt;preference&gt;
+					&lt;name value="user.name.family"/&gt;
+					&lt;value value="User"/&gt;
+				&lt;/preference&gt;
+			&lt;/userinfo&gt;
 			&lt;Rules&gt;
 				&lt;Rule locator="page" rule="subsite-by-hostname"/&gt;
 			&lt;/Rules&gt;
@@ -369,7 +405,16 @@
 			&lt;roles&gt;&lt;/roles&gt;
 			&lt;groups&gt;&lt;/groups&gt;
 			&lt;preferences/&gt;
-			&lt;userinfo/&gt;
+			&lt;userinfo&gt;
+				&lt;preference&gt;
+					&lt;name value="user.name.given"/&gt;
+					&lt;value value="Tomcat"/&gt;
+				&lt;/preference&gt;
+				&lt;preference&gt;
+					&lt;name value="user.name.family"/&gt;
+					&lt;value value="User"/&gt;
+				&lt;/preference&gt;
+			&lt;/userinfo&gt;
 			&lt;Rules/&gt;
 		&lt;/User&gt;
 		&lt;User name="jetspeed"&gt;
@@ -377,7 +422,16 @@
 			&lt;roles&gt;manager&lt;/roles&gt;
 			&lt;groups&gt;engineering&lt;/groups&gt;
 			&lt;preferences/&gt;
-			&lt;userinfo/&gt;
+			&lt;userinfo&gt;
+				&lt;preference&gt;
+					&lt;name value="user.name.given"/&gt;
+					&lt;value value="Jetspeed"/&gt;
+				&lt;/preference&gt;
+				&lt;preference&gt;
+					&lt;name value="user.name.family"/&gt;
+					&lt;value value="User"/&gt;
+				&lt;/preference&gt;
+			&lt;/userinfo&gt;
 			&lt;Rules&gt;
 				&lt;Rule locator="menu" rule="role-group"/&gt;
 				&lt;Rule locator="page" rule="role-fallback"/&gt;
@@ -388,7 +442,16 @@
 			&lt;roles&gt;guest&lt;/roles&gt;
 			&lt;groups&gt;&lt;/groups&gt;
 			&lt;preferences/&gt;
-			&lt;userinfo/&gt;
+			&lt;userinfo&gt;
+				&lt;preference&gt;
+					&lt;name value="user.name.given"/&gt;
+					&lt;value value=""/&gt;
+				&lt;/preference&gt;
+				&lt;preference&gt;
+					&lt;name value="user.name.family"/&gt;
+					&lt;value value="Guest"/&gt;
+				&lt;/preference&gt;
+			&lt;/userinfo&gt;
 			&lt;Rules&gt;
 				&lt;Rule locator="page" rule="j2"/&gt;
 			&lt;/Rules&gt;



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885484 - /portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp</title>
<author><name>woonsan@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c20091130163207.841CC2388893@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091130163207-841CC2388893@eris-apache-org%3e</id>
<updated>2009-11-30T16:32:07Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: woonsan
Date: Mon Nov 30 16:32:07 2009
New Revision: 885484

URL: http://svn.apache.org/viewvc?rev=885484&amp;view=rev
Log:
JS2-1057: Not to refresh when the selected category is the same one as before.
Also, set the default category to "News".

Modified:
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=885484&amp;r1=885483&amp;r2=885484&amp;view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
(original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
Mon Nov 30 16:32:07 2009
@@ -187,7 +187,7 @@
 	        }
             var categories = Y.Node.getDOMNode(Y.Node.one("#&lt;portlet:namespace/&gt;categories"));
             for (var i = 0; i &lt; categories.options.length; i++) {
-                if (category == categories.options[i].value) {
+                if (category == categories.options[i].value &amp;&amp; i != categories.selectedIndex)
{
                     categories.options[i].selected = true;
                     loadPortletsInCategory(category);
                     break;



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885475 - /portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp</title>
<author><name>woonsan@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c20091130161546.26D7E238888E@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091130161546-26D7E238888E@eris-apache-org%3e</id>
<updated>2009-11-30T16:15:46Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: woonsan
Date: Mon Nov 30 16:15:45 2009
New Revision: 885475

URL: http://svn.apache.org/viewvc?rev=885475&amp;view=rev
Log:
JS2-1057: Makes it remember last-selected tab and category

Modified:
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=885475&amp;r1=885474&amp;r2=885475&amp;view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
(original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
Mon Nov 30 16:15:45 2009
@@ -50,7 +50,7 @@
     &lt;/tr&gt;
 &lt;/table&gt;
 
-&lt;table id="&lt;portlet:namespace/&gt;portletsTab" style="border-collapse: collapse;  width:
100%; margin-top: 0px; margin-bottom: 0px; float: left;"&gt;
+&lt;table id="&lt;portlet:namespace/&gt;portletsTab" style="display: none; border-collapse:
collapse;  width: 100%; margin-top: 0px; margin-bottom: 0px; float: left;"&gt;
     &lt;form onsubmit="return false;"&gt;
     &lt;tr&gt;
         &lt;th class="portlet-section-header" colspan="10"&gt;Portlets&lt;/th&gt;
@@ -65,7 +65,7 @@
     &lt;tr&gt;
         &lt;td class="portlet-section-subheader" colspan='10'&gt;
             &lt;select id="&lt;portlet:namespace/&gt;categories"&gt;
-                &lt;option value=""&gt;All categories&lt;/option&gt;
+                &lt;option value=""&gt;Choose a category&lt;/option&gt;
                 &lt;c:forEach var="category" items="${categories}"&gt;
                     &lt;option value="${category.name}"&gt;${category.name}&lt;/option&gt;
                 &lt;/c:forEach&gt;
@@ -75,7 +75,7 @@
     
     &lt;tr&gt;
         &lt;td&gt;
-            &lt;div id="&lt;portlet:namespace/&gt;portletItemsPanel" style="height: 400px;
overflow: auto;"&gt;&lt;/div&gt;
+            &lt;div id="&lt;portlet:namespace/&gt;portletItemsPanel"&gt;&lt;/div&gt;
         &lt;/td&gt;
     &lt;/tr&gt;
 
@@ -168,17 +168,36 @@
 &lt;/table&gt;
 
 &lt;script language="javascript"&gt;
-YUI(yuiConfig).use('io', 'dataschema-json', 'node-base', function(Y) {
+YUI().use('io', 'dataschema-json', 'node-base', 'cookie', function(Y) {
 
     function switchTab(e) {
-        var tabId = e.target.get("id");
+        var tabId = ('string' == typeof(e) ? e : e.target.get("id"));
         
         Y.Node.one("#&lt;portlet:namespace/&gt;portletsTab").setStyle("display", (tabId ==
"&lt;portlet:namespace/&gt;portletsTabAction" ? "" : "none"));
         Y.Node.one("#&lt;portlet:namespace/&gt;layoutsTab").setStyle("display", (tabId ==
"&lt;portlet:namespace/&gt;layoutsTabAction" ? "" : "none"));
         Y.Node.one("#&lt;portlet:namespace/&gt;themesTab").setStyle("display", (tabId ==
"&lt;portlet:namespace/&gt;themesTabAction" ? "" : "none"));
         Y.Node.one("#&lt;portlet:namespace/&gt;widgetsTab").setStyle("display", (tabId ==
"&lt;portlet:namespace/&gt;widgetsTabAction" ? "" : "none"));
         
-        e.halt();
+        Y.Cookie.set("toolboxtab", tabId);
+
+        if (tabId == "&lt;portlet:namespace/&gt;portletsTabAction") {
+	        var category = Y.Cookie.get("toolboxcat");
+	        if (!category) {
+		        category = "News";
+	        }
+            var categories = Y.Node.getDOMNode(Y.Node.one("#&lt;portlet:namespace/&gt;categories"));
+            for (var i = 0; i &lt; categories.options.length; i++) {
+                if (category == categories.options[i].value) {
+                    categories.options[i].selected = true;
+                    loadPortletsInCategory(category);
+                    break;
+                }
+            }
+        }
+
+        if ('string' != typeof(e)) {
+            e.halt();
+        }
     }
     
     var onLoadPortletComplete = function(id, o, args) { 
@@ -240,15 +259,19 @@
     };
     
     var loadPortletsInCategory = function(e) {
-        var categories = Y.Node.getDOMNode(e.target);
-        var category = categories.options[categories.selectedIndex].value;
-        var uri = "${portalContextPath}/ajaxapi/?action=getportlets&amp;format=json";
-        if (category) {
-            uri += "&amp;filter=" + category;
+        var category = ('string' == typeof(e) ? e : null);
+        if (!category) {
+	        var categories = Y.Node.getDOMNode(e.target);
+	        category = categories.options[categories.selectedIndex].value;
         }
+        if (!category) {
+            return;
+        }
+        Y.Cookie.set("toolboxcat", category);
+        var uri = "${portalContextPath}/ajaxapi/?action=getportlets&amp;format=json";
+        uri += "&amp;filter=" + category;
         Y.on('io:complete', onLoadPortletComplete, this, []); 
         var request = Y.io(uri);
-
         Y.Node.one("#&lt;portlet:namespace/&gt;query").set("value", "");
     }
     
@@ -270,7 +293,12 @@
     Y.on("click", switchTab, "#&lt;portlet:namespace/&gt;widgetsTabAction");
     Y.on("change", loadPortletsInCategory, "#&lt;portlet:namespace/&gt;categories");
     Y.on("click", loadPortletsByQuery, "#&lt;portlet:namespace/&gt;search");
+
+    var tabId = Y.Cookie.get("toolboxtab");
+    if (!tabId) {
+        tabId = "&lt;portlet:namespace/&gt;portletsTabAction";
+    }
     
-    loadPortletsByQuery("");
+    switchTab(tabId);
 });
 &lt;/script&gt;



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Apa-RSS</title>
<author><name>Woonsan Ko &lt;woon_san@yahoo.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c254873.24353.qm@web51101.mail.re2.yahoo.com%3e"/>
<id>urn:uuid:%3c254873-24353-qm@web51101-mail-re2-yahoo-com%3e</id>
<updated>2009-11-30T13:50:31Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Hi Gonzalo,

I'd like to inform you of commons-logging issue.
Because the current commons-logging is not proper for cross-context application environment
like portal, we removed commons-logging dependencies in jetspeed-2 and apa projects.
Please see https://issues.apache.org/jira/browse/JS2-972 for details.
It is recommended to use slf4j instead.

Kind regards,

Woonsan



&gt;
&gt;From: Gonzalo Aguilar Delgado &lt;gaguilar@aguilardelgado.com&gt;
&gt;To: David Sean Taylor &lt;d.taylor@onehippo.com&gt;
&gt;Cc: woonsan@apache.org; Jetspeed Developers List &lt;jetspeed-dev@portals.apache.org&gt;
&gt;Sent: Fri, November 27, 2009 7:54:08 PM
&gt;Subject: Apa-RSS
&gt;
&gt; &gt;
&gt;
&gt;  
&gt;  
&gt;
&gt;Hi there, 
&gt;
&gt;&gt;I made some changes to the apa-rss project. 
&gt;
&gt;&gt;Normally it escapes all the rss feed. For some feeds this is not a good solution as
html code will be shown. 
&gt;&gt;I added a parameter to the portlet to handle this.
&gt;
&gt;&gt;Also, I added preliminary Junit support. For now it just test that transformation
is done without errors.
&gt;
&gt;&gt;pom.xml modifications went with the patch. I added junit dependency and commons-logging.
&gt;
&gt;
&gt;&gt;Thank you. 
&gt;
&gt;
&gt;


      

</pre>
</div>
</content>
</entry>
<entry>
<title>Apa-RSS</title>
<author><name>Gonzalo Aguilar Delgado &lt;gaguilar@aguilardelgado.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c1259348048.11940.66.camel@azul1%3e"/>
<id>urn:uuid:%3c1259348048-11940-66-camel@azul1%3e</id>
<updated>2009-11-27T18:54:08Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Hi there, 

I made some changes to the apa-rss project. 

Normally it escapes all the rss feed. For some feeds this is not a good
solution as html code will be shown. 
I added a parameter to the portlet to handle this.

Also, I added preliminary Junit support. For now it just test that
transformation is done without errors.

pom.xml modifications went with the patch. I added junit dependency and
commons-logging.


Thank you. 




</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Other toolkits</title>
<author><name>Gonzalo Aguilar Delgado &lt;gaguilar@aguilardelgado.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c1259347762.11940.61.camel@azul1%3e"/>
<id>urn:uuid:%3c1259347762-11940-61-camel@azul1%3e</id>
<updated>2009-11-27T18:49:22Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Hi David, 

&gt; Double work, double bugs, and then when you decide to go off and do  
&gt; something else when you get bored with this project, double  
&gt; maintenance for me. And not only a zero feature gain, but a negative  
&gt; feature gain since the work you could be doing on features (developed  
&gt; in collaboration between all developers) is instead "wasted" (I say  
&gt; wasted from the team POV) on duplicating everything. We are a small  
&gt; team.
&gt; 
&gt; Sorry, thats just my POV, and maybe some fear from getting burnt in  
&gt; the past by people who are gung-ho one day, and disappear the next. I  
&gt; try to put the project quality first.


Yes. I know that point and that's true. It's better to be cautious. This
is why I will go slow
with this point. Apache is a meritocracy so I have to slowly grow up as
a apache developer.

No prob. I have lot's of things to do and it's not my first objective
also. But don't want to 
close doors...


&gt; &gt; But can at least leave door open for other AJAX toolkits?
&gt; &gt;
&gt; Point taken. What I will do is investigate introducing a Jetspeed  
&gt; Javascript API layer, so all high level Javascript operations are  
&gt; programmed against a higher level Javascript API, minimizing  
&gt; dependencies on one Javascript library. If we are going to put in this  
&gt; layer, we need to closely consider the costs/benefits. The costs to  
&gt; consider are flexibility, bugs introduced by layering and delegating  
&gt; everything, introducing yet another programming api, and feature work  
&gt; not being implemented due to time spent writing layer and delegate  
&gt; code -- all against the benefits, which you should talk more about...


I found that it should be not much work for now. I think current work
done with the new ui
is well established and can be used with other toolkits... Don't waste
too much time on this
but just think about it. 

Also, maybe there are other ways to do it... Don't know.


&gt; I should point out that the AJAX Customizations API is callable from  
&gt; any Javascript library. So you are free to implement your own client  
&gt; side code from that POV


Maybe I mix things but what I'm talking about is about replacing
clientside code with anything else.


&gt; Lets discuss it more. Now that I am beginning to learn about your what  
&gt; you want to do, there are a few coordination improvements we need to  
&gt; make:


Sure... Let's take time and do it well...


&gt; 
&gt; 1. I have an in-progress issue I am actively working on.  https://issues.apache.org/jira/browse/JS2-1084)

&gt; . I would like the opportunity to contribute too, with your approval  
&gt; of course...


I will finish some things I have pending with Woonsan and the will go
with this...


&gt; 2. Your patches are going to be out of date. I am working and  
&gt; committing as I go on a documented JIRA issue. If you want to work on  
&gt; any part of this issue, you need to work closer with me and we can  
&gt; decide who works on what so we don't have conflicts and so that we can  
&gt; coordinate and collaborate on the work. I would very much like to  
&gt; collaborate with you on this work, please do not misinterpret my  
&gt; caution to jump on the 'layering API approach' before analyzing the  
&gt; costs/benefits as something else.


Let me take a look closer on how things works, then we can take time to
plan... If it has
any benefits... 

Thank you for considering...





</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Other toolkits</title>
<author><name>David Sean Taylor &lt;d.taylor@onehippo.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3cD1044EA4-295F-4279-BAFB-3B066F8A84EF@onehippo.com%3e"/>
<id>urn:uuid:%3cD1044EA4-295F-4279-BAFB-3B066F8A84EF@onehippo-com%3e</id>
<updated>2009-11-27T18:24:33Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Gonzalo, here is an initiative that may interest you in respect to  
your need to use other toolkits:

http://www.openajax.org/member/wiki/OpenAjax_Hub_2.0_Specification_Introduction

I personally cannot commit any time, as I am already committed to  
working on JS2-1084






---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884933 - in /portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest: PortletRegistryService.java util/ util/PaginationUtils.java util/SearchEngineUtils.java</title>
<author><name>woonsan@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c20091127180958.8A82D2388882@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091127180958-8A82D2388882@eris-apache-org%3e</id>
<updated>2009-11-27T18:09:58Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: woonsan
Date: Fri Nov 27 18:09:57 2009
New Revision: 884933

URL: http://svn.apache.org/viewvc?rev=884933&amp;view=rev
Log:
JS2-1087: Adding query parameter and pagination params.
The following query parameters can be used: 
"query": query string parameter (optional)
"begin": begin index for pagination (optional)
"max": max item count for pagination (optional)

So, for example,

(1) GET all PA infos with query: 
      http://localhost:8080/jetspeed/services/portletregistry/application/?_type=json&amp;query=demo&amp;begin=0&amp;max=2
(2) GET demo PA info:
      http://localhost:8080/jetspeed/services/portletregistry/application/demo/?_type=json&amp;query=demo&amp;begin=0&amp;max=2
(3) GET all PD infos:
      http://localhost:8080/jetspeed/services/portletregistry/definition/?_type=json&amp;query=demo&amp;begin=0&amp;max=2
(4) GET all PD infos of demo PA:
      http://localhost:8080/jetspeed/services/portletregistry/definition/demo/?_type=json&amp;query=demo&amp;begin=0&amp;max=2
(5) GET demo::PickANumberPortlet PD info:
      http://localhost:8080/jetspeed/services/portletregistry/definition/demo/PickANumberPortlet/?_type=json&amp;query=demo&amp;begin=0&amp;max=2

TODO: 
 - I think that a new search index field for portlet application name needs to be added.
 - Also, "type" search index field can be either "portlet" or "portlet_application". However,
the former should be renamed to something like "portlet_definition" because search by "type:
portlet" index field will search portlet applications too.

Added:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/PaginationUtils.java
  (with props)
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/SearchEngineUtils.java
  (with props)
Modified:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java?rev=884933&amp;r1=884932&amp;r2=884933&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
Fri Nov 27 18:09:57 2009
@@ -17,6 +17,7 @@
 package org.apache.jetspeed.services.rest;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
 import javax.servlet.ServletConfig;
@@ -25,19 +26,26 @@
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
+import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.PathSegment;
 import javax.ws.rs.core.UriInfo;
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.math.NumberUtils;
 import org.apache.jetspeed.Jetspeed;
 import org.apache.jetspeed.components.portletregistry.PortletRegistry;
 import org.apache.jetspeed.om.portlet.PortletApplication;
 import org.apache.jetspeed.om.portlet.PortletDefinition;
+import org.apache.jetspeed.search.ParsedObject;
+import org.apache.jetspeed.search.SearchEngine;
+import org.apache.jetspeed.search.SearchResults;
 import org.apache.jetspeed.services.beans.PortletApplicationBean;
 import org.apache.jetspeed.services.beans.PortletApplicationBeans;
 import org.apache.jetspeed.services.beans.PortletDefinitionBean;
 import org.apache.jetspeed.services.beans.PortletDefinitionBeans;
+import org.apache.jetspeed.services.rest.util.PaginationUtils;
+import org.apache.jetspeed.services.rest.util.SearchEngineUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -67,14 +75,20 @@
     
     private PortletRegistry portletRegistry;
     
+    private SearchEngine searchEngine;
+    
     public PortletRegistryService()
     {
         portletRegistry = (PortletRegistry) Jetspeed.getComponentManager().getComponent(PortletRegistry.class);
+        searchEngine = (SearchEngine) Jetspeed.getComponentManager().getComponent(SearchEngine.class);
     }
     
     @GET
     @Path("/application/{path:.*}")
-    public PortletApplicationBeans getPortletApplication(@PathParam("path") List&lt;PathSegment&gt;
pathSegments)
+    public PortletApplicationBeans getPortletApplication(@PathParam("path") List&lt;PathSegment&gt;
pathSegments,
+                                                         @QueryParam("query") String queryParam,

+                                                         @QueryParam("begin") String beginIndexParam,
+                                                         @QueryParam("max") String maxResultsParam)
     {
         String applicationName = null;
         
@@ -83,23 +97,52 @@
             applicationName = pathSegments.get(0).getPath();
         }
         
+        int beginIndex = NumberUtils.toInt(beginIndexParam, -1);
+        int maxResults = NumberUtils.toInt(maxResultsParam, -1);
+        
         PortletApplicationBeans paBeans = new PortletApplicationBeans();
         List&lt;PortletApplicationBean&gt; paBeanList = new ArrayList&lt;PortletApplicationBean&gt;();
         
-        if (StringUtils.isBlank(applicationName))
+        if (!StringUtils.isBlank(queryParam))
         {
-            for (PortletApplication pa : portletRegistry.getPortletApplications())
+            String queryText = ParsedObject.FIELDNAME_TYPE + ":\"" + ParsedObject.OBJECT_TYPE_PORTLET_APPLICATION
+ "\" AND " + queryParam;
+            SearchResults searchResults = searchEngine.search(queryText);
+            List&lt;ParsedObject&gt; searchResultList = searchResults.getResults();
+            
+            for (ParsedObject parsedObject : (List&lt;ParsedObject&gt;) PaginationUtils.subList(searchResultList,
beginIndex, maxResults))
             {
-                paBeanList.add(new PortletApplicationBean(pa));
+                String appName = SearchEngineUtils.getFieldAsString(parsedObject, "ID", null);
+                
+                if (StringUtils.isBlank(appName))
+                {
+                    continue;
+                }
+                
+                PortletApplication pa = portletRegistry.getPortletApplication(appName);
+                
+                if (pa != null)
+                {
+                    paBeanList.add(new PortletApplicationBean(pa));
+                }
             }
         }
         else
         {
-            PortletApplication pa = portletRegistry.getPortletApplication(applicationName,
true);
-            
-            if (pa != null)
+            if (StringUtils.isBlank(applicationName))
             {
-                paBeanList.add(new PortletApplicationBean(pa));
+                for (PortletApplication pa : (Collection&lt;PortletApplication&gt;) PaginationUtils.subCollection(portletRegistry.getPortletApplications(),
beginIndex, maxResults))
+                {
+                    paBeanList.add(new PortletApplicationBean(pa));
+                }
+            }
+            else
+            {
+                PortletApplication pa = portletRegistry.getPortletApplication(applicationName,
true);
+                
+                if (pa != null)
+                {
+                    paBeanList.add(new PortletApplicationBean(pa));
+                }
             }
         }
         
@@ -109,7 +152,10 @@
     
     @GET
     @Path("/definition/{path:.*}")
-    public PortletDefinitionBeans getPortletDefinition(@PathParam("path") List&lt;PathSegment&gt;
pathSegments)
+    public PortletDefinitionBeans getPortletDefinition(@PathParam("path") List&lt;PathSegment&gt;
pathSegments, 
+                                                       @QueryParam("query") String queryParam,

+                                                       @QueryParam("begin") String beginIndexParam,
+                                                       @QueryParam("max") String maxResultsParam)
     {
         String applicationName = null;
         String definitionName = null;
@@ -127,39 +173,71 @@
             }
         }
         
+        int beginIndex = NumberUtils.toInt(beginIndexParam, -1);
+        int maxResults = NumberUtils.toInt(maxResultsParam, -1);
+        
         PortletDefinitionBeans pdBeans = new PortletDefinitionBeans();
         List&lt;PortletDefinitionBean&gt; pdBeanList = new ArrayList&lt;PortletDefinitionBean&gt;();
         
-        if (StringUtils.isBlank(applicationName) &amp;&amp; StringUtils.isBlank(definitionName))
+        if (!StringUtils.isBlank(queryParam))
         {
-            for (PortletDefinition pd : portletRegistry.getAllPortletDefinitions())
+            String queryText = 
+                ParsedObject.FIELDNAME_TYPE + ":\"" + ParsedObject.OBJECT_TYPE_PORTLET +
"\" " +
+                "AND NOT " + ParsedObject.FIELDNAME_TYPE + ":\"" + ParsedObject.OBJECT_TYPE_PORTLET_APPLICATION
+ "\" " + 
+                "AND " + queryParam;
+            SearchResults searchResults = searchEngine.search(queryText);
+            List&lt;ParsedObject&gt; searchResultList = searchResults.getResults();
+            
+            for (ParsedObject parsedObject : (List&lt;ParsedObject&gt;) PaginationUtils.subList(searchResultList,
beginIndex, maxResults))
             {
-                pdBeanList.add(new PortletDefinitionBean(pd));
+                String uniqueName = SearchEngineUtils.getPortletUniqueName(parsedObject);
+                
+                if (StringUtils.isBlank(uniqueName))
+                {
+                    continue;
+                }
+                
+                PortletDefinition pd = portletRegistry.getPortletDefinitionByUniqueName(uniqueName);
+                
+                if (pd != null)
+                {
+                    pdBeanList.add(new PortletDefinitionBean(pd));
+                }
             }
         }
         else
         {
-            PortletApplication pa = portletRegistry.getPortletApplication(applicationName,
true);
-            
-            if (pa != null)
+            if (StringUtils.isBlank(applicationName) &amp;&amp; StringUtils.isBlank(definitionName))
             {
-                if (StringUtils.isBlank(definitionName))
+                for (PortletDefinition pd : (Collection&lt;PortletDefinition&gt;) PaginationUtils.subCollection(portletRegistry.getAllPortletDefinitions(),
beginIndex, maxResults))
                 {
-                    if (pa != null)
+                    pdBeanList.add(new PortletDefinitionBean(pd));
+                }
+            }
+            else
+            {
+                PortletApplication pa = portletRegistry.getPortletApplication(applicationName,
true);
+                
+                if (pa != null)
+                {
+                    if (StringUtils.isBlank(definitionName))
                     {
-                        for (PortletDefinition pd : pa.getPortlets())
+                        if (pa != null)
                         {
-                            pdBeanList.add(new PortletDefinitionBean(pd));
+                            for (PortletDefinition pd : (List&lt;PortletDefinition&gt;) PaginationUtils.subList(pa.getPortlets(),
beginIndex, maxResults))
+                            {
+                                pdBeanList.add(new PortletDefinitionBean(pd));
+                            }
                         }
                     }
-                }
-                else
-                {
-                    PortletDefinition pd = pa.getPortlet(definitionName);
-                    
-                    if (pd != null)
+                    else
                     {
-                        pdBeanList.add(new PortletDefinitionBean(pd));
+                        PortletDefinition pd = pa.getPortlet(definitionName);
+                        
+                        if (pd != null)
+                        {
+                            pdBeanList.add(new PortletDefinitionBean(pd));
+                        }
                     }
                 }
             }

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/PaginationUtils.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/PaginationUtils.java?rev=884933&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/PaginationUtils.java
(added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/PaginationUtils.java
Fri Nov 27 18:09:57 2009
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.rest.util;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * PaginationUtils
+ * 
+ * @version $Id$
+ */
+public class PaginationUtils
+{
+    
+    private PaginationUtils()
+    {
+        
+    }
+    
+    public static List&lt;? extends Object&gt; subList(final List&lt;? extends Object&gt;
list, int beginIndex, int maxResults)
+    {
+        if (beginIndex &lt; 0 || (beginIndex == 0 &amp;&amp; maxResults &lt; 0))
+        {
+            return list;
+        }
+        else if (beginIndex &gt;= list.size())
+        {
+            return Collections.emptyList();
+        }
+        else
+        {
+            if (maxResults &lt; 0)
+            {
+                return list.subList(beginIndex, list.size());
+            }
+            else
+            {
+                return list.subList(beginIndex, Math.min(list.size(), beginIndex + maxResults));
+            }
+        }
+    }
+    
+    public static Collection&lt;? extends Object&gt; subCollection(final Collection&lt;?
extends Object&gt; collection, int beginIndex, int maxResults)
+    {
+        if (beginIndex &lt; 0 || (beginIndex == 0 &amp;&amp; maxResults &lt; 0))
+        {
+            return collection;
+        }
+        else if (beginIndex &gt;= collection.size())
+        {
+            return Collections.emptyList();
+        }
+        else
+        {
+            List&lt;Object&gt; list = null;
+            
+            if (collection instanceof List)
+            {
+                list = (List&lt;Object&gt;) collection;
+            }
+            else
+            {
+                list = new ArrayList&lt;Object&gt;(collection);
+            }
+            
+            if (maxResults &lt; 0)
+            {
+                return list.subList(beginIndex, list.size());
+            }
+            else
+            {
+                return list.subList(beginIndex, Math.min(list.size(), beginIndex + maxResults));
+            }
+        }
+    }
+    
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/PaginationUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/PaginationUtils.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/PaginationUtils.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/SearchEngineUtils.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/SearchEngineUtils.java?rev=884933&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/SearchEngineUtils.java
(added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/SearchEngineUtils.java
Fri Nov 27 18:09:57 2009
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.rest.util;
+
+import java.util.Collection;
+import java.util.Map;
+
+import org.apache.jetspeed.search.ParsedObject;
+
+/**
+ * SearchEngineUtils
+ * 
+ * @version $Id$
+ */
+public class SearchEngineUtils
+{
+    
+    private SearchEngineUtils()
+    {
+        
+    }
+    
+    public static Object getField(final ParsedObject parsedObject, final String fieldName,
final Object defaultValue)
+    {
+        Map fields = parsedObject.getFields();
+        
+        if (fields == null)
+        {
+            return null;
+        }
+        
+        Object field = fields.get(fieldName);
+        
+        if (field == null)
+        {
+            return defaultValue;
+        }
+        
+        return field;
+    }
+    
+    public static String getFieldAsString(final ParsedObject parsedObject, final String fieldName,
final String defaultValue)
+    {
+        Object field = getField(parsedObject, fieldName, defaultValue);
+        
+        if (field instanceof Collection)
+        {
+            return (String) ((Collection) field).iterator().next();
+        }
+        else
+        {
+            return (String) field;
+        }
+    }
+    
+    public static String getPortletUniqueName(final ParsedObject parsedObject)
+    {
+        if (!"portlet".equals(parsedObject.getType()))
+        {
+            return null;
+        }
+        
+        String portletName = getFieldAsString(parsedObject, "ID", null);
+        
+        if (portletName == null)
+        {
+            return null;
+        }
+        
+        String applicationName = getFieldAsString(parsedObject, "portlet_application", null);
+        
+        if (applicationName == null)
+        {
+            return null;
+        }
+        
+        return applicationName + "::" + portletName;
+    }
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/SearchEngineUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/SearchEngineUtils.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/util/SearchEngineUtils.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Other toolkits</title>
<author><name>David Sean Taylor &lt;d.taylor@onehippo.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c5F62F9A1-F1AF-4C2B-9F50-EA207B1896E4@onehippo.com%3e"/>
<id>urn:uuid:%3c5F62F9A1-F1AF-4C2B-9F50-EA207B1896E4@onehippo-com%3e</id>
<updated>2009-11-27T17:14:02Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

On Nov 27, 2009, at 5:14 AM, Gonzalo Aguilar Delgado wrote:

&gt; First of all... I know that this proposition doubles work...
&gt;

Double work, double bugs, and then when you decide to go off and do  
something else when you get bored with this project, double  
maintenance for me. And not only a zero feature gain, but a negative  
feature gain since the work you could be doing on features (developed  
in collaboration between all developers) is instead "wasted" (I say  
wasted from the team POV) on duplicating everything. We are a small  
team.

Sorry, thats just my POV, and maybe some fear from getting burnt in  
the past by people who are gung-ho one day, and disappear the next. I  
try to put the project quality first.

&gt; But can at least leave door open for other AJAX toolkits?
&gt;
Point taken. What I will do is investigate introducing a Jetspeed  
Javascript API layer, so all high level Javascript operations are  
programmed against a higher level Javascript API, minimizing  
dependencies on one Javascript library. If we are going to put in this  
layer, we need to closely consider the costs/benefits. The costs to  
consider are flexibility, bugs introduced by layering and delegating  
everything, introducing yet another programming api, and feature work  
not being implemented due to time spent writing layer and delegate  
code -- all against the benefits, which you should talk more about...

&gt; I mean, it would be nice if ajax implementation doesn't rely on only  
&gt; one
&gt; toolkit or implementation. So others can implement their own.
&gt;

I should point out that the AJAX Customizations API is callable from  
any Javascript library. So you are free to implement your own client  
side code from that POV

&gt; Maybe I can propone patches to leave door open to other toolkits and
&gt; make
&gt; jetspeed interface generic...
&gt;
Lets discuss it more. Now that I am beginning to learn about your what  
you want to do, there are a few coordination improvements we need to  
make:

1. I have an in-progress issue I am actively working on.  https://issues.apache.org/jira/browse/JS2-1084)

. I would like the opportunity to contribute too, with your approval  
of course...

2. Your patches are going to be out of date. I am working and  
committing as I go on a documented JIRA issue. If you want to work on  
any part of this issue, you need to work closer with me and we can  
decide who works on what so we don't have conflicts and so that we can  
coordinate and collaborate on the work. I would very much like to  
collaborate with you on this work, please do not misinterpret my  
caution to jump on the 'layering API approach' before analyzing the  
costs/benefits as something else.




---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884883 - in /portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services: beans/ rest/</title>
<author><name>woonsan@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c20091127141757.910D123888C5@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091127141757-910D123888C5@eris-apache-org%3e</id>
<updated>2009-11-27T14:17:57Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: woonsan
Date: Fri Nov 27 14:17:56 2009
New Revision: 884883

URL: http://svn.apache.org/viewvc?rev=884883&amp;view=rev
Log:
JS2-1087: Removing '%20' path parameter
Following urls with json marshaling are available. 
(You can use '?_type=xml' instead for xml marshaling. If you don't specify this parameter,
then the ACCEPT http header is used to decide the best marshaling type.)
Also, replace the '::' separated portlet unique name by path segments separated by slash.

(1) GET all PA infos: 
      http://localhost:8080/jetspeed/services/portletregistry/application/?_type=json
(2) GET demo PA info:
      http://localhost:8080/jetspeed/services/portletregistry/application/demo/?_type=json
(3) GET all PD infos:
      http://localhost:8080/jetspeed/services/portletregistry/definition/?_type=json
(4) GET all PD infos of demo PA:
      http://localhost:8080/jetspeed/services/portletregistry/definition/demo/?_type=json
(5) GET demo::PickANumberPortlet PD info:
      http://localhost:8080/jetspeed/services/portletregistry/definition/demo/PickANumberPortlet/?_type=json

TODO: support search query.

Added:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/ContainerRuntimeOptionBean.java
  (with props)
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/GenericMetadataBean.java
  (with props)
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LocalizedFieldBean.java
  (with props)
Modified:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/ContainerRuntimeOptionBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/ContainerRuntimeOptionBean.java?rev=884883&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/ContainerRuntimeOptionBean.java
(added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/ContainerRuntimeOptionBean.java
Fri Nov 27 14:17:56 2009
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.beans;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.jetspeed.om.portlet.ContainerRuntimeOption;
+
+/**
+ * ContainerRuntimeOptionBean
+ * 
+ * @version $Id$
+ */
+@XmlRootElement(name="containerRuntimeOption")
+public class ContainerRuntimeOptionBean implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+    
+    private String name;
+    private Collection&lt;String&gt; values;
+
+    public ContainerRuntimeOptionBean()
+    {
+        
+    }
+    
+    public ContainerRuntimeOptionBean(final ContainerRuntimeOption containerRuntimeOption)
+    {
+        name = containerRuntimeOption.getName();
+        values = containerRuntimeOption.getValues();
+    }
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+    @XmlElementWrapper(name="values")
+    @XmlElements(@XmlElement(name="value"))
+    public Collection&lt;String&gt; getValues()
+    {
+        return values;
+    }
+
+    public void setValues(Collection&lt;String&gt; values)
+    {
+        this.values = values;
+    }
+
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/ContainerRuntimeOptionBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/ContainerRuntimeOptionBean.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/ContainerRuntimeOptionBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java?rev=884883&amp;r1=884882&amp;r2=884883&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
Fri Nov 27 14:17:56 2009
@@ -33,7 +33,7 @@
 {
     private static final long serialVersionUID = 1L;
     
-    private String description;
+    private String value;
     private String lang;
     private String localeString;
 
@@ -44,7 +44,7 @@
     
     public DescriptionBean(final Description description)
     {
-        this.description = description.getDescription();
+        this.value = description.getDescription();
         lang = description.getLang();
         
         Locale locale = description.getLocale();
@@ -55,14 +55,14 @@
         }
     }
 
-    public String getDescription()
+    public String getValue()
     {
-        return description;
+        return value;
     }
 
-    public void setDescription(String description)
+    public void setValue(String value)
     {
-        this.description = description;
+        this.value = value;
     }
 
     public String getLang()

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java?rev=884883&amp;r1=884882&amp;r2=884883&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
Fri Nov 27 14:17:56 2009
@@ -33,7 +33,7 @@
 {
     private static final long serialVersionUID = 1L;
     
-    private String displayName;
+    private String value;
     private String lang;
     private String localeString;
 
@@ -44,7 +44,7 @@
     
     public DisplayNameBean(final DisplayName displayName)
     {
-        this.displayName = displayName.getDisplayName();
+        this.value = displayName.getDisplayName();
         lang = displayName.getLang();
         
         Locale locale = displayName.getLocale();
@@ -55,14 +55,14 @@
         }
     }
 
-    public String getDisplayName()
+    public String getValue()
     {
-        return displayName;
+        return value;
     }
 
-    public void setDisplayName(String displayName)
+    public void setValue(String value)
     {
-        this.displayName = displayName;
+        this.value = value;
     }
 
     public String getLang()

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/GenericMetadataBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/GenericMetadataBean.java?rev=884883&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/GenericMetadataBean.java
(added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/GenericMetadataBean.java
Fri Nov 27 14:17:56 2009
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.beans;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.jetspeed.om.portlet.GenericMetadata;
+import org.apache.jetspeed.om.portlet.LocalizedField;
+
+/**
+ * GenericMetadataBean
+ * 
+ * @version $Id$
+ */
+@XmlRootElement(name="metadata")
+public class GenericMetadataBean implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+    
+    private Collection&lt;LocalizedFieldBean&gt; localizedFieldBeans;
+    
+    public GenericMetadataBean()
+    {
+        
+    }
+    
+    public GenericMetadataBean(final GenericMetadata metadata)
+    {
+        List&lt;LocalizedFieldBean&gt; localizedFieldBeanList = new ArrayList&lt;LocalizedFieldBean&gt;();
+        
+        for (LocalizedField field : metadata.getFields())
+        {
+            localizedFieldBeanList.add(new LocalizedFieldBean(field));
+        }
+        
+        localizedFieldBeans = localizedFieldBeanList;
+    }
+    
+    @XmlElementWrapper(name="fields")
+    @XmlElements(@XmlElement(name="field"))
+    public Collection&lt;LocalizedFieldBean&gt; getLocalizedFieldBeans()
+    {
+        return localizedFieldBeans;
+    }
+    
+    public void setLocalizedFieldBeans(Collection&lt;LocalizedFieldBean&gt; localizedFieldBeans)
+    {
+        this.localizedFieldBeans = localizedFieldBeans;
+    }
+    
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/GenericMetadataBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/GenericMetadataBean.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/GenericMetadataBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LocalizedFieldBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LocalizedFieldBean.java?rev=884883&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LocalizedFieldBean.java
(added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LocalizedFieldBean.java
Fri Nov 27 14:17:56 2009
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.beans;
+
+import java.io.Serializable;
+import java.util.Locale;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.jetspeed.om.portlet.LocalizedField;
+
+/**
+ * LocalizedFieldBean
+ * 
+ * @version $Id$
+ */
+@XmlRootElement(name="field")
+public class LocalizedFieldBean implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+    
+    private String name;
+    private String value;
+    private String localeString;
+
+    public LocalizedFieldBean()
+    {
+        
+    }
+    
+    public LocalizedFieldBean(final LocalizedField localizedField)
+    {
+        name = localizedField.getName();
+        value = localizedField.getValue();
+        
+        Locale locale = localizedField.getLocale();
+        
+        if (locale != null)
+        {
+            localeString = locale.toString();
+        }
+    }
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+    public String getValue()
+    {
+        return value;
+    }
+
+    public void setValue(String value)
+    {
+        this.value = value;
+    }
+
+    public String getLocaleString()
+    {
+        return localeString;
+    }
+
+    public void setLocaleString(String localeString)
+    {
+        this.localeString = localeString;
+    }
+    
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LocalizedFieldBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LocalizedFieldBean.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LocalizedFieldBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java?rev=884883&amp;r1=884882&amp;r2=884883&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
Fri Nov 27 14:17:56 2009
@@ -25,6 +25,7 @@
 import javax.xml.bind.annotation.XmlElements;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.jetspeed.om.portlet.ContainerRuntimeOption;
 import org.apache.jetspeed.om.portlet.Description;
 import org.apache.jetspeed.om.portlet.DisplayName;
 import org.apache.jetspeed.om.portlet.PortletApplication;
@@ -41,12 +42,15 @@
     
     private String name;
     private String contextPath;
+    private String localContextPath;
     private String defaultNamespace;
     private int applicationType;
     private long checksum;
     private long revision;
     private Collection&lt;DisplayNameBean&gt; displayNameBeans;
     private Collection&lt;DescriptionBean&gt; descriptionBeans;
+    private GenericMetadataBean metadataBean;
+    private Collection&lt;ContainerRuntimeOptionBean&gt; containerRuntimeOptionBeans;
     
     public PortletApplicationBean()
     {
@@ -57,6 +61,7 @@
     {
         name = portletApplication.getName();
         contextPath = portletApplication.getContextPath();
+        localContextPath = portletApplication.getLocalContextPath();
         defaultNamespace = portletApplication.getDefaultNamespace();
         applicationType = portletApplication.getApplicationType();
         checksum = portletApplication.getChecksum();
@@ -75,6 +80,15 @@
             descriptionBeanList.add(new DescriptionBean(description));
         }
         descriptionBeans = descriptionBeanList;
+        
+        metadataBean = new GenericMetadataBean(portletApplication.getMetadata());
+        
+        ArrayList&lt;ContainerRuntimeOptionBean&gt; containerRuntimeOptionBeanList = new
ArrayList&lt;ContainerRuntimeOptionBean&gt;();
+        for (ContainerRuntimeOption containerRuntimeOption : portletApplication.getContainerRuntimeOptions())
+        {
+            containerRuntimeOptionBeanList.add(new ContainerRuntimeOptionBean(containerRuntimeOption));
+        }
+        containerRuntimeOptionBeans = containerRuntimeOptionBeanList;
     }
 
     public String getName()
@@ -97,6 +111,16 @@
         this.contextPath = contextPath;
     }
 
+    public String getLocalContextPath()
+    {
+        return localContextPath;
+    }
+
+    public void setLocalContextPath(String localContextPath)
+    {
+        this.localContextPath = localContextPath;
+    }
+    
     public String getDefaultNamespace()
     {
         return defaultNamespace;
@@ -161,4 +185,26 @@
         this.descriptionBeans = descriptionBeans;
     }
     
+    @XmlElement(name="metadata")
+    public GenericMetadataBean getMetadataBean()
+    {
+        return metadataBean;
+    }
+    
+    public void setMetadataBean(GenericMetadataBean metadataBean)
+    {
+        this.metadataBean = metadataBean;
+    }
+    
+    @XmlElementWrapper(name="containerRuntimeOptions")
+    @XmlElements(@XmlElement(name="containerRuntimeOption"))
+    public Collection&lt;ContainerRuntimeOptionBean&gt; getContainerRuntimeOptionBeans()
+    {
+        return containerRuntimeOptionBeans;
+    }
+
+    public void setContainerRuntimeOptionBeans(Collection&lt;ContainerRuntimeOptionBean&gt;
containerRuntimeOptionBeans)
+    {
+        this.containerRuntimeOptionBeans = containerRuntimeOptionBeans;
+    }
 }

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java?rev=884883&amp;r1=884882&amp;r2=884883&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
Fri Nov 27 14:17:56 2009
@@ -25,6 +25,7 @@
 import javax.xml.bind.annotation.XmlElements;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.jetspeed.om.portlet.ContainerRuntimeOption;
 import org.apache.jetspeed.om.portlet.Description;
 import org.apache.jetspeed.om.portlet.DisplayName;
 import org.apache.jetspeed.om.portlet.Language;
@@ -43,11 +44,14 @@
     
     private String applicationName;
     private String portletName;
+    private String uniqueName;
     private PortletInfoBean portletInfoBean;
     private Collection&lt;DisplayNameBean&gt; displayNameBeans;
     private Collection&lt;DescriptionBean&gt; descriptionBeans;
     private Collection&lt;SupportsBean&gt; supportsBeans;
     private Collection&lt;LanguageBean&gt; languageBeans;
+    private GenericMetadataBean metadataBean;
+    private Collection&lt;ContainerRuntimeOptionBean&gt; containerRuntimeOptionBeans;
     
     public PortletDefinitionBean()
     {
@@ -58,6 +62,7 @@
     {
         applicationName = portletDefinition.getApplication().getName();
         portletName = portletDefinition.getPortletName();
+        uniqueName = portletDefinition.getUniqueName();
         portletInfoBean = new PortletInfoBean(portletDefinition.getPortletInfo());
         
         ArrayList&lt;DisplayNameBean&gt; displayNameBeanList = new ArrayList&lt;DisplayNameBean&gt;();
@@ -87,6 +92,15 @@
             languageBeanList.add(new LanguageBean(language));
         }
         languageBeans = languageBeanList;
+        
+        metadataBean = new GenericMetadataBean(portletDefinition.getMetadata());
+        
+        ArrayList&lt;ContainerRuntimeOptionBean&gt; containerRuntimeOptionBeanList = new
ArrayList&lt;ContainerRuntimeOptionBean&gt;();
+        for (ContainerRuntimeOption containerRuntimeOption : portletDefinition.getContainerRuntimeOptions())
+        {
+            containerRuntimeOptionBeanList.add(new ContainerRuntimeOptionBean(containerRuntimeOption));
+        }
+        containerRuntimeOptionBeans = containerRuntimeOptionBeanList;
     }
 
     public String getApplicationName()
@@ -109,6 +123,16 @@
         this.portletName = portletName;
     }
 
+    public String getUniqueName()
+    {
+        return uniqueName;
+    }
+
+    public void setUniqueName(String uniqueName)
+    {
+        this.uniqueName = uniqueName;
+    }
+    
     @XmlElement(name="portletInfo")
     public PortletInfoBean getPortletInfoBean()
     {
@@ -168,4 +192,27 @@
         this.languageBeans = languageBeans;
     }
     
+    @XmlElement(name="metadata")
+    public GenericMetadataBean getMetadataBean()
+    {
+        return metadataBean;
+    }
+    
+    public void setMetadataBean(GenericMetadataBean metadataBean)
+    {
+        this.metadataBean = metadataBean;
+    }
+    
+    @XmlElementWrapper(name="containerRuntimeOptions")
+    @XmlElements(@XmlElement(name="containerRuntimeOption"))
+    public Collection&lt;ContainerRuntimeOptionBean&gt; getContainerRuntimeOptionBeans()
+    {
+        return containerRuntimeOptionBeans;
+    }
+
+    public void setContainerRuntimeOptionBeans(Collection&lt;ContainerRuntimeOptionBean&gt;
containerRuntimeOptionBeans)
+    {
+        this.containerRuntimeOptionBeans = containerRuntimeOptionBeans;
+    }
+    
 }

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java?rev=884883&amp;r1=884882&amp;r2=884883&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
Fri Nov 27 14:17:56 2009
@@ -26,6 +26,7 @@
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.core.Context;
+import javax.ws.rs.core.PathSegment;
 import javax.ws.rs.core.UriInfo;
 
 import org.apache.commons.lang.StringUtils;
@@ -72,13 +73,20 @@
     }
     
     @GET
-    @Path("/application/{name}")
-    public PortletApplicationBeans getPortletApplication(@PathParam("name") String name)
+    @Path("/application/{path:.*}")
+    public PortletApplicationBeans getPortletApplication(@PathParam("path") List&lt;PathSegment&gt;
pathSegments)
     {
+        String applicationName = null;
+        
+        if (pathSegments != null &amp;&amp; !pathSegments.isEmpty())
+        {
+            applicationName = pathSegments.get(0).getPath();
+        }
+        
         PortletApplicationBeans paBeans = new PortletApplicationBeans();
         List&lt;PortletApplicationBean&gt; paBeanList = new ArrayList&lt;PortletApplicationBean&gt;();
         
-        if (StringUtils.isBlank(name))
+        if (StringUtils.isBlank(applicationName))
         {
             for (PortletApplication pa : portletRegistry.getPortletApplications())
             {
@@ -87,7 +95,7 @@
         }
         else
         {
-            PortletApplication pa = portletRegistry.getPortletApplication(name, true);
+            PortletApplication pa = portletRegistry.getPortletApplication(applicationName,
true);
             
             if (pa != null)
             {
@@ -100,13 +108,29 @@
     }
     
     @GET
-    @Path("/definition/{uniqueName}")
-    public PortletDefinitionBeans getPortletDefinition(@PathParam("uniqueName") String uniqueName)
+    @Path("/definition/{path:.*}")
+    public PortletDefinitionBeans getPortletDefinition(@PathParam("path") List&lt;PathSegment&gt;
pathSegments)
     {
+        String applicationName = null;
+        String definitionName = null;
+        
+        if (pathSegments != null)
+        {
+            if (pathSegments.size() &gt; 0)
+            {
+                applicationName = pathSegments.get(0).getPath();
+            }
+            
+            if (pathSegments.size() &gt; 1)
+            {
+                definitionName = pathSegments.get(1).getPath();
+            }
+        }
+        
         PortletDefinitionBeans pdBeans = new PortletDefinitionBeans();
         List&lt;PortletDefinitionBean&gt; pdBeanList = new ArrayList&lt;PortletDefinitionBean&gt;();
         
-        if (StringUtils.isBlank(uniqueName))
+        if (StringUtils.isBlank(applicationName) &amp;&amp; StringUtils.isBlank(definitionName))
         {
             for (PortletDefinition pd : portletRegistry.getAllPortletDefinitions())
             {
@@ -115,24 +139,25 @@
         }
         else
         {
-            int offset = uniqueName.indexOf("::");
+            PortletApplication pa = portletRegistry.getPortletApplication(applicationName,
true);
             
-            if (offset != -1)
+            if (pa != null)
             {
-                PortletDefinition pd = portletRegistry.getPortletDefinitionByUniqueName(uniqueName,
true);
-                
-                if (pd != null)
+                if (StringUtils.isBlank(definitionName))
                 {
-                    pdBeanList.add(new PortletDefinitionBean(pd));
+                    if (pa != null)
+                    {
+                        for (PortletDefinition pd : pa.getPortlets())
+                        {
+                            pdBeanList.add(new PortletDefinitionBean(pd));
+                        }
+                    }
                 }
-            }
-            else
-            {
-                PortletApplication pa = portletRegistry.getPortletApplication(uniqueName,
true);
-                
-                if (pa != null)
+                else
                 {
-                    for (PortletDefinition pd : pa.getPortlets())
+                    PortletDefinition pd = pa.getPortlet(definitionName);
+                    
+                    if (pd != null)
                     {
                         pdBeanList.add(new PortletDefinitionBean(pd));
                     }



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: BIRT and portal</title>
<author><name>Ate Douma &lt;ate@douma.nu&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c4B0FD653.40506@douma.nu%3e"/>
<id>urn:uuid:%3c4B0FD653-40506@douma-nu%3e</id>
<updated>2009-11-27T13:38:27Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Gonzalo Aguilar Delgado wrote:
&gt; Hi Ate, 
&gt; 
&gt; I'm sorry for my late answer but I was really busy this week...
So was I, hence this delayed response :)

&gt; 
&gt; I think you should look for a BI environment...
&gt; 
&gt; Maybe you will want to take a look to pentaho (http://www.pentaho.com/)
Yes, I'm aware of the pentaho project.
For our purposes however, and the desire to deliver a *generic* reporting service manageable
and usable from within the portal itself to be 
  provided through either the Apache Jetspeed Portal project itself or, preferably, the Apache
Portals Applications project, it really isn't 
an option.
The Pentaho community edition uses a mixture of licenses (very confusing), most of which are
incompatible with the ASF license nor endorsed 
as such, e.g. GPL and LGPL are not allowed by the ASF.
Furthermore, the Pentaho BI suite is imo too "overweight" for our purposes, although certainly
valuable if you need full blown BI support.
Besides the license problems, making use of Pentaho probably would end up as a separate solution
with some "integration" bridging to make it 
accessible and usable from within the portal, but unlikely to provide the "integrated" management
we're looking for.
However, I'm not a real Pentaho expert so I might be mistaken in this regard.
But anyway, the license issue really is such a blocker that there is no use for me to spend
more time to investigate it (now).

&gt; 
&gt; I brought some books (I'm waiting for them) about implementation because
&gt; this makes more sense for my
&gt; objectives. And maybe yours...
&gt; 
&gt; With pentaho you can build the BI environment in the back and server
&gt; reports with
&gt; jetspeed as needed. 
&gt; 
&gt; I'm looking for this solution to see if Jetspeed connections make sense.
&gt; 
&gt; I'm not sure about the right way to go right now but your project looks
&gt; big enough
&gt; to take a look around before choosing way...
Sure, I agree on that, but AFAIK the BIRT engine itself already should be embeddable (with
some effort) and as such, I'm expecting the 
integration efforts to do so probably wouldn't amount to more (probably even less) than trying
to integrate a BI solution like Pentaho.
And, as the BIRT license *is* acceptable for the ASF (as binary distribution, not for customizations),
my plan is to continue with that 
route, unless someone comes up with a better idea or has something already available to contribute
:)

Besides the reporting engine itself though, we'll also need some base Reporting Portlets,
providing access to and capable of rendering BIRT 
based reports... As AFAIK Pentaho also (just) uses BIRT for that, and you already have some
experience by leveraging this from within 
portlets, your knowledge and experience in this will be very valuable!
So if you want to help in this area, we would very much appreciate that.

Regards,

Ate

&gt; 
&gt; 
&gt; 
&gt; 
&gt; 
&gt;&gt; Well, sure :)
&gt;&gt;
&gt;&gt; As I mentioned before, we have a request to provide a BIRT reporting *service* with
Jetspeed so to bring standard reporting capabilities 
&gt;&gt; accessible from portlets.
&gt;&gt; Our goal is to provide both report definition and maintenance features, e.g. through
dedicated admin portlets and a report (configuration) 
&gt;&gt; repository, as well as allowing portlets to "serve" such reports.
&gt;&gt; Primary (first) target for such reports would be the Jetspeed own configuration,
e.g. like the security data, but as a generic BIRT 
&gt;&gt; reporting service and configuration repository it should be extendable and usable
for any (business) application reporting integration.
&gt;&gt; Our preference would be to provide this as a "standard" portal and portlets solution,
e.g. even usable for other portals, by hosting this as 
&gt;&gt; a "standards" compliant solution at Apache Portals Application, http://portals.apache.org/applications/,
but of course it should work in 
&gt;&gt; Jetspeed-2 first and foremost, so this is not yet a strict requirement.
&gt;&gt;
&gt;&gt; If you want to help out and collaborate on this or even just provide some valuable
input, that would be much appreciated.
&gt;&gt; You can also contact me directly if you'd prefer to discuss this offline first.
&gt;&gt;&gt; Thank you.
&gt;&gt;&gt;
&gt;&gt;&gt;
&gt;&gt;
&gt;&gt; ---------------------------------------------------------------------
&gt;&gt; To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
&gt;&gt; For additional commands, e-mail: jetspeed-dev-help@portals.apache.org
&gt;&gt;
&gt; 


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: svn commit: r884670 - in /portals/jetspeed-2/portal/trunk: ./ applications/jetspeed/src/main/resources/ applications/jetspeed/src/main/webapp/WEB-INF/ components/jetspeed-portal/ components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/val...</title>
<author><name>Woonsan Ko &lt;woon_san@yahoo.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c327526.98081.qm@web51112.mail.re2.yahoo.com%3e"/>
<id>urn:uuid:%3c327526-98081-qm@web51112-mail-re2-yahoo-com%3e</id>
<updated>2009-11-27T13:15:59Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Hi Gonzalo,

Ah, I think you're right. It seems better to set the default category to something like "News". Yes, please go ahead. Thanks a lot!

Cheers, Woonsan



----- Original Message ----
From: Gonzalo Aguilar Delgado &lt;gaguilar@aguilardelgado.com&gt;
To: Jetspeed Developers List &lt;jetspeed-dev@portals.apache.org&gt;
Sent: Fri, November 27, 2009 2:10:52 PM
Subject: Re: svn commit: r884670 - in /portals/jetspeed-2/portal/trunk: ./ applications/jetspeed/src/main/resources/ applications/jetspeed/src/main/webapp/WEB-INF/ components/jetspeed-portal/ components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/val...

Hi Woonsan, 

Ok. I will try to implement this into the toolbox and add a new service
to get all categories. So they will 
be updated dynamically when new apps are added. This also will help me
to dive into JAX-RS services.

I also recommend to set default category in toolbox to "News" or some
other because it will get messy
when lot's of portlets are in place. Can I do it also?

Tnx

El vie, 27-11-2009 a las 04:59 -0800, Woonsan Ko escribió:

&gt; Hi Gonzalo,
&gt; 
&gt; Yes, I'm implementing JAX-RS services which possibly replaces the old ajax apis. It should be regarded as a prototype until other committers get satisfied with this new one.
&gt; However, I'd like to see this new JAX-RS service used in the toolbox portlet. It would help evaluation. 
&gt; If you are interested in this, please dive into it. I will really appreciate it. :-)
&gt; 
&gt; By the way, many Jetspeed developers prefer json to xml, so I think we'd better use json marshaling instead of xml marshaling in toolbox portlet.
&gt; Also, I found a problem to fix. It should be more consistently mappable between xml and json marshaling. I hope to fix these today. I will update the status in the commit messages.
&gt; FYI, you can use json marshaling by adding "?_type=json" parameter as follows:
&gt; 
&gt; (1) GET all PAs: http://localhost:8080/jetspeed/services/portletregistry/application/%20?_type=json
&gt; (2) GET demo PA: http://localhost:8080/jetspeed/services/portletregistry/application/demo/?_type=json
&gt; (3) GET all PDs: http://localhost:8080/jetspeed/services/portletregistry/definition/%20?_type=json
&gt; (4) GET all PDs of demo PA: http://localhost:8080/jetspeed/services/portletregistry/definition/demo/?_type=json
&gt; (5) GET demo::PickANumberPortlet PD: http://localhost:8080/jetspeed/services/portletregistry/definition/demo::PickANumberPortlet/?_type=json
&gt; 
&gt; Apache CXF allows to change marshaling types by Accept header as well, but I think this is very handy.
&gt; 
&gt; Kind regards,
&gt; 
&gt; Woonsan
&gt; 
&gt; 
&gt; 
&gt; ----- Original Message ----
&gt; From: Gonzalo Aguilar Delgado &lt;gaguilar@aguilardelgado.com&gt;
&gt; To: Jetspeed Developers List &lt;jetspeed-dev@portals.apache.org&gt;
&gt; Sent: Fri, November 27, 2009 1:26:28 PM
&gt; Subject: Re: svn commit: r884670 - in /portals/jetspeed-2/portal/trunk: ./ applications/jetspeed/src/main/resources/ applications/jetspeed/src/main/webapp/WEB-INF/ components/jetspeed-portal/ components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/val...
&gt; 
&gt; Woonsan, 
&gt; 
&gt; Is this a new type of service implementation? Will Jetspeed go in that
&gt; direction?
&gt; 
&gt; Do you want me to put this into the toolbox?
&gt; 
&gt; Tnx
&gt; 
&gt; 
&gt; El jue, 26-11-2009 a las 19:21 +0000, woonsan@apache.org escribió:
&gt; 
&gt; &gt; Author: woonsan
&gt; &gt; Date: Thu Nov 26 19:21:39 2009
&gt; &gt; New Revision: 884670
&gt; &gt; 
&gt; &gt; URL: http://svn.apache.org/viewvc?rev=884670&amp;view=rev
&gt; &gt; Log:
&gt; &gt; JS2-1087: Adding initial JAX-RS support as prototype
&gt; &gt; The following urls are testable:
&gt; &gt; 
&gt; &gt; (1) GET all PAs: http://localhost:8080/jetspeed/services/portletregistry/application/%20
&gt; &gt; (2) GET demo PA: http://localhost:8080/jetspeed/services/portletregistry/application/demo/
&gt; &gt; (3) GET all PDs: http://localhost:8080/jetspeed/services/portletregistry/definition/%20
&gt; &gt; (4) GET all PDs of demo PA: http://localhost:8080/jetspeed/services/portletregistry/definition/demo/
&gt; &gt; (5) GET demo::PickANumberPortlet PD: http://localhost:8080/jetspeed/services/portletregistry/definition/demo::PickANumberPortlet/
&gt; &gt; 
&gt; &gt; TODO: Remove '%20' in the urls to indicate '*', test with json client and integrate it with toolbox portlet.
&gt; &gt; 
&gt; &gt; Added:
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml   (with props)
&gt; &gt; Modified:
&gt; &gt;     portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml
&gt; &gt;     portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/   (props changed)
&gt; &gt;     portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml
&gt; &gt;     portals/jetspeed-2/portal/trunk/pom.xml
&gt; &gt; 
&gt; &gt; Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml (original)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -94,7 +94,15 @@
&gt; &gt;        &lt;param name="ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} %-5p [%C.%M():%L] %m%n"/&gt;
&gt; &gt;      &lt;/layout&gt;
&gt; &gt;    &lt;/appender&gt;
&gt; &gt; -
&gt; &gt; +  
&gt; &gt; +  &lt;!-- cxf appender --&gt;
&gt; &gt; +  &lt;appender name="cxf" class="org.apache.log4j.FileAppender"&gt;
&gt; &gt; +    &lt;param name="File" value="${org.apache.portals.logdir}/jetspeed-cxf.log"/&gt;
&gt; &gt; +    &lt;layout class="org.apache.log4j.PatternLayout"&gt;
&gt; &gt; +      &lt;param name="ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} %-5p [%C.%M():%L] %m%n"/&gt;
&gt; &gt; +    &lt;/layout&gt;
&gt; &gt; +  &lt;/appender&gt;
&gt; &gt; +  
&gt; &gt;    &lt;!-- ====================================================================== --&gt;
&gt; &gt;    &lt;!-- L O G G E R S                                                          --&gt;
&gt; &gt;    &lt;!-- ====================================================================== --&gt;
&gt; &gt; @@ -134,6 +142,11 @@
&gt; &gt;      &lt;appender-ref ref="ojb"/&gt;
&gt; &gt;    &lt;/category&gt;
&gt; &gt;    
&gt; &gt; +  &lt;category additivity="false" name="org.apache.cxf"&gt;
&gt; &gt; +    &lt;level value="ERROR"/&gt;
&gt; &gt; +    &lt;appender-ref ref="cxf"/&gt;
&gt; &gt; +  &lt;/category&gt;
&gt; &gt; +  
&gt; &gt;    &lt;category additivity="false" name="scheduler"&gt;
&gt; &gt;      &lt;level value="ERROR"/&gt;
&gt; &gt;      &lt;appender-ref ref="scheduler"/&gt;
&gt; &gt; 
&gt; &gt; Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml (original)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -180,6 +180,10 @@
&gt; &gt;    &lt;/servlet-mapping&gt;
&gt; &gt;    &lt;servlet-mapping&gt;
&gt; &gt;      &lt;servlet-name&gt;jetspeed&lt;/servlet-name&gt;
&gt; &gt; +    &lt;url-pattern&gt;/services/*&lt;/url-pattern&gt;
&gt; &gt; +  &lt;/servlet-mapping&gt;
&gt; &gt; +  &lt;servlet-mapping&gt;
&gt; &gt; +    &lt;servlet-name&gt;jetspeed&lt;/servlet-name&gt;
&gt; &gt;      &lt;url-pattern&gt;/desktop/*&lt;/url-pattern&gt;
&gt; &gt;    &lt;/servlet-mapping&gt;
&gt; &gt;    &lt;servlet-mapping&gt;
&gt; &gt; 
&gt; &gt; Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml (original)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -165,6 +165,15 @@
&gt; &gt;        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; &gt;        &lt;artifactId&gt;spring-context-support&lt;/artifactId&gt;
&gt; &gt;      &lt;/dependency&gt;
&gt; &gt; +    &lt;dependency&gt;
&gt; &gt; +      &lt;groupId&gt;javax.ws.rs&lt;/groupId&gt;
&gt; &gt; +      &lt;artifactId&gt;jsr311-api&lt;/artifactId&gt;
&gt; &gt; +    &lt;/dependency&gt;
&gt; &gt; +    &lt;dependency&gt;
&gt; &gt; +      &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
&gt; &gt; +      &lt;artifactId&gt;cxf-rt-frontend-jaxrs&lt;/artifactId&gt;
&gt; &gt; +      &lt;scope&gt;runtime&lt;/scope&gt;
&gt; &gt; +    &lt;/dependency&gt;
&gt; &gt;  
&gt; &gt;      &lt;!-- Test Dependencies --&gt;
&gt; &gt;      &lt;dependency&gt;
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,125 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.pipeline.valve.impl;
&gt; &gt; +
&gt; &gt; +import java.util.Collections;
&gt; &gt; +import java.util.Enumeration;
&gt; &gt; +import java.util.Map;
&gt; &gt; +
&gt; &gt; +import javax.servlet.ServletConfig;
&gt; &gt; +import javax.servlet.ServletContext;
&gt; &gt; +import javax.servlet.http.HttpServlet;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.pipeline.PipelineException;
&gt; &gt; +import org.apache.jetspeed.pipeline.valve.AbstractValve;
&gt; &gt; +import org.apache.jetspeed.pipeline.valve.ValveContext;
&gt; &gt; +import org.apache.jetspeed.request.RequestContext;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * ServletDelegatingValve
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +public class ServletDelegatingValve extends AbstractValve
&gt; &gt; +{
&gt; &gt; +    protected HttpServlet servlet;
&gt; &gt; +    protected ServletConfig config;
&gt; &gt; +
&gt; &gt; +    public ServletDelegatingValve(HttpServlet servlet, ServletConfig config)
&gt; &gt; +    {
&gt; &gt; +        this.servlet = servlet;
&gt; &gt; +        this.config = config;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    @Override
&gt; &gt; +    public void initialize() throws PipelineException
&gt; &gt; +    {
&gt; &gt; +        try
&gt; &gt; +        {
&gt; &gt; +            servlet.init(config);
&gt; &gt; +        }
&gt; &gt; +        catch (Exception e)
&gt; &gt; +        {
&gt; &gt; +            throw new PipelineException(e);
&gt; &gt; +        }
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void destroy()
&gt; &gt; +    {
&gt; &gt; +        servlet.destroy();
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @Override
&gt; &gt; +    public void invoke(RequestContext request, ValveContext context) throws PipelineException
&gt; &gt; +    {
&gt; &gt; +        try
&gt; &gt; +        {
&gt; &gt; +            servlet.service(request.getRequest(), request.getResponse());
&gt; &gt; +        }
&gt; &gt; +        catch (Exception e)
&gt; &gt; +        {
&gt; &gt; +            throw new PipelineException(e);
&gt; &gt; +        }
&gt; &gt; +        
&gt; &gt; +        // continue
&gt; &gt; +        context.invokeNext(request);
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public static class ServletConfigImpl implements ServletConfig
&gt; &gt; +    {
&gt; &gt; +        protected String servletName;
&gt; &gt; +        protected Map&lt;String, String&gt; initParams;
&gt; &gt; +        protected ServletContext servletContext;
&gt; &gt; +
&gt; &gt; +        public ServletConfigImpl(String servletName, Map&lt;String, String&gt; initParams)
&gt; &gt; +        {
&gt; &gt; +            this(servletName, initParams, null);
&gt; &gt; +        }
&gt; &gt; +
&gt; &gt; +        public ServletConfigImpl(String servletName, Map&lt;String, String&gt; initParams, ServletContext servletContext)
&gt; &gt; +        {
&gt; &gt; +            this.servletName = servletName;
&gt; &gt; +            this.initParams = initParams;
&gt; &gt; +            this.servletContext = servletContext;
&gt; &gt; +        }
&gt; &gt; +
&gt; &gt; +        public String getInitParameter(String paramName)
&gt; &gt; +        {
&gt; &gt; +            return initParams.get(paramName);
&gt; &gt; +        }
&gt; &gt; +
&gt; &gt; +        public Enumeration getInitParameterNames()
&gt; &gt; +        {
&gt; &gt; +            return Collections.enumeration(initParams.keySet());
&gt; &gt; +        }
&gt; &gt; +
&gt; &gt; +        public ServletContext getServletContext()
&gt; &gt; +        {
&gt; &gt; +            return servletContext;
&gt; &gt; +        }
&gt; &gt; +
&gt; &gt; +        public void setServletContext(ServletContext servletContext)
&gt; &gt; +        {
&gt; &gt; +            this.servletContext = servletContext;
&gt; &gt; +        }
&gt; &gt; +
&gt; &gt; +        public String getServletName()
&gt; &gt; +        {
&gt; &gt; +            return servletName;
&gt; &gt; +        }
&gt; &gt; +    }
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt; --- svn:ignore (original)
&gt; &gt; +++ svn:ignore Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -1,2 +1,2 @@
&gt; &gt; -target
&gt; &gt; +target
&gt; &gt;  surefire*.properties
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,87 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +import java.util.Locale;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.om.portlet.Description;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * DescriptionBean
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="description")
&gt; &gt; +public class DescriptionBean implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private String description;
&gt; &gt; +    private String lang;
&gt; &gt; +    private String localeString;
&gt; &gt; +
&gt; &gt; +    public DescriptionBean()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public DescriptionBean(final Description description)
&gt; &gt; +    {
&gt; &gt; +        this.description = description.getDescription();
&gt; &gt; +        lang = description.getLang();
&gt; &gt; +        
&gt; &gt; +        Locale locale = description.getLocale();
&gt; &gt; +        
&gt; &gt; +        if (locale != null)
&gt; &gt; +        {
&gt; &gt; +            localeString = locale.toString();
&gt; &gt; +        }
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getDescription()
&gt; &gt; +    {
&gt; &gt; +        return description;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setDescription(String description)
&gt; &gt; +    {
&gt; &gt; +        this.description = description;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getLang()
&gt; &gt; +    {
&gt; &gt; +        return lang;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setLang(String lang)
&gt; &gt; +    {
&gt; &gt; +        this.lang = lang;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getLocaleString()
&gt; &gt; +    {
&gt; &gt; +        return localeString;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setLocaleString(String localeString)
&gt; &gt; +    {
&gt; &gt; +        this.localeString = localeString;
&gt; &gt; +    }
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,88 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +import java.util.Locale;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.om.portlet.DisplayName;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * DisplayNameBean
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="displayName")
&gt; &gt; +public class DisplayNameBean implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private String displayName;
&gt; &gt; +    private String lang;
&gt; &gt; +    private String localeString;
&gt; &gt; +
&gt; &gt; +    public DisplayNameBean()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public DisplayNameBean(final DisplayName displayName)
&gt; &gt; +    {
&gt; &gt; +        this.displayName = displayName.getDisplayName();
&gt; &gt; +        lang = displayName.getLang();
&gt; &gt; +        
&gt; &gt; +        Locale locale = displayName.getLocale();
&gt; &gt; +        
&gt; &gt; +        if (locale != null)
&gt; &gt; +        {
&gt; &gt; +            localeString = locale.toString();
&gt; &gt; +        }
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getDisplayName()
&gt; &gt; +    {
&gt; &gt; +        return displayName;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setDisplayName(String displayName)
&gt; &gt; +    {
&gt; &gt; +        this.displayName = displayName;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getLang()
&gt; &gt; +    {
&gt; &gt; +        return lang;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setLang(String lang)
&gt; &gt; +    {
&gt; &gt; +        this.lang = lang;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getLocaleString()
&gt; &gt; +    {
&gt; &gt; +        return localeString;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setLocaleString(String localeString)
&gt; &gt; +    {
&gt; &gt; +        this.localeString = localeString;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,98 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +import java.util.ArrayList;
&gt; &gt; +import java.util.Collection;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlElement;
&gt; &gt; +import javax.xml.bind.annotation.XmlElementWrapper;
&gt; &gt; +import javax.xml.bind.annotation.XmlElements;
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.om.portlet.Description;
&gt; &gt; +import org.apache.jetspeed.om.portlet.InitParam;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * InitParamBean
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="initParam")
&gt; &gt; +public class InitParamBean implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private String paramName;
&gt; &gt; +    private String paramValue;
&gt; &gt; +    private Collection&lt;DescriptionBean&gt; descriptionBeans;
&gt; &gt; +    
&gt; &gt; +    public InitParamBean()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public InitParamBean(final InitParam initParam)
&gt; &gt; +    {
&gt; &gt; +        paramName = initParam.getParamName();
&gt; &gt; +        paramValue = initParam.getParamValue();
&gt; &gt; +        
&gt; &gt; +        ArrayList&lt;DescriptionBean&gt; descriptionBeanList = new ArrayList&lt;DescriptionBean&gt;();
&gt; &gt; +        
&gt; &gt; +        for (Description description : initParam.getDescriptions())
&gt; &gt; +        {
&gt; &gt; +            descriptionBeanList.add(new DescriptionBean(description));
&gt; &gt; +        }
&gt; &gt; +        
&gt; &gt; +        descriptionBeans = descriptionBeanList;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getParamName()
&gt; &gt; +    {
&gt; &gt; +        return paramName;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setParamName(String paramName)
&gt; &gt; +    {
&gt; &gt; +        this.paramName = paramName;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getParamValue()
&gt; &gt; +    {
&gt; &gt; +        return paramValue;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setParamValue(String paramValue)
&gt; &gt; +    {
&gt; &gt; +        this.paramValue = paramValue;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    @XmlElementWrapper(name="descriptions")
&gt; &gt; +    @XmlElements(@XmlElement(name="description"))
&gt; &gt; +    public Collection&lt;DescriptionBean&gt; getDescriptionBeans()
&gt; &gt; +    {
&gt; &gt; +        return descriptionBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setDescriptionBeans(Collection&lt;DescriptionBean&gt; descriptionBeans)
&gt; &gt; +    {
&gt; &gt; +        this.descriptionBeans = descriptionBeans;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,64 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.util.Locale;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.om.portlet.Language;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * LanguageBean
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="language")
&gt; &gt; +public class LanguageBean extends PortletInfoBean
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private String localeString;
&gt; &gt; +    
&gt; &gt; +    public LanguageBean()
&gt; &gt; +    {
&gt; &gt; +        super();
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public LanguageBean(final Language language)
&gt; &gt; +    {
&gt; &gt; +        super(language);
&gt; &gt; +        
&gt; &gt; +        Locale locale = language.getLocale();
&gt; &gt; +        
&gt; &gt; +        if (locale != null)
&gt; &gt; +        {
&gt; &gt; +            localeString = locale.toString();
&gt; &gt; +        }
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public String getLocaleString()
&gt; &gt; +    {
&gt; &gt; +        return localeString;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setLocaleString(String localeString)
&gt; &gt; +    {
&gt; &gt; +        this.localeString = localeString;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,164 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +import java.util.ArrayList;
&gt; &gt; +import java.util.Collection;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlElement;
&gt; &gt; +import javax.xml.bind.annotation.XmlElementWrapper;
&gt; &gt; +import javax.xml.bind.annotation.XmlElements;
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.om.portlet.Description;
&gt; &gt; +import org.apache.jetspeed.om.portlet.DisplayName;
&gt; &gt; +import org.apache.jetspeed.om.portlet.PortletApplication;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * PortletApplicationBean
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="application")
&gt; &gt; +public class PortletApplicationBean implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private String name;
&gt; &gt; +    private String contextPath;
&gt; &gt; +    private String defaultNamespace;
&gt; &gt; +    private int applicationType;
&gt; &gt; +    private long checksum;
&gt; &gt; +    private long revision;
&gt; &gt; +    private Collection&lt;DisplayNameBean&gt; displayNameBeans;
&gt; &gt; +    private Collection&lt;DescriptionBean&gt; descriptionBeans;
&gt; &gt; +    
&gt; &gt; +    public PortletApplicationBean()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public PortletApplicationBean(final PortletApplication portletApplication)
&gt; &gt; +    {
&gt; &gt; +        name = portletApplication.getName();
&gt; &gt; +        contextPath = portletApplication.getContextPath();
&gt; &gt; +        defaultNamespace = portletApplication.getDefaultNamespace();
&gt; &gt; +        applicationType = portletApplication.getApplicationType();
&gt; &gt; +        checksum = portletApplication.getChecksum();
&gt; &gt; +        revision = portletApplication.getRevision();
&gt; &gt; +        
&gt; &gt; +        ArrayList&lt;DisplayNameBean&gt; displayNameBeanList = new ArrayList&lt;DisplayNameBean&gt;();
&gt; &gt; +        for (DisplayName displayName : portletApplication.getDisplayNames())
&gt; &gt; +        {
&gt; &gt; +            displayNameBeanList.add(new DisplayNameBean(displayName));
&gt; &gt; +        }
&gt; &gt; +        displayNameBeans = displayNameBeanList;
&gt; &gt; +        
&gt; &gt; +        ArrayList&lt;DescriptionBean&gt; descriptionBeanList = new ArrayList&lt;DescriptionBean&gt;();
&gt; &gt; +        for (Description description : portletApplication.getDescriptions())
&gt; &gt; +        {
&gt; &gt; +            descriptionBeanList.add(new DescriptionBean(description));
&gt; &gt; +        }
&gt; &gt; +        descriptionBeans = descriptionBeanList;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getName()
&gt; &gt; +    {
&gt; &gt; +        return name;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setName(String name)
&gt; &gt; +    {
&gt; &gt; +        this.name = name;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getContextPath()
&gt; &gt; +    {
&gt; &gt; +        return contextPath;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setContextPath(String contextPath)
&gt; &gt; +    {
&gt; &gt; +        this.contextPath = contextPath;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getDefaultNamespace()
&gt; &gt; +    {
&gt; &gt; +        return defaultNamespace;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setDefaultNamespace(String defaultNamespace)
&gt; &gt; +    {
&gt; &gt; +        this.defaultNamespace = defaultNamespace;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public int getApplicationType()
&gt; &gt; +    {
&gt; &gt; +        return applicationType;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setApplicationType(int applicationType)
&gt; &gt; +    {
&gt; &gt; +        this.applicationType = applicationType;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public long getChecksum()
&gt; &gt; +    {
&gt; &gt; +        return checksum;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setChecksum(long checksum)
&gt; &gt; +    {
&gt; &gt; +        this.checksum = checksum;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public long getRevision()
&gt; &gt; +    {
&gt; &gt; +        return revision;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setRevision(long revision)
&gt; &gt; +    {
&gt; &gt; +        this.revision = revision;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElementWrapper(name="displayNames")
&gt; &gt; +    @XmlElements(@XmlElement(name="displayName"))
&gt; &gt; +    public Collection&lt;DisplayNameBean&gt; getDisplayNameBeans()
&gt; &gt; +    {
&gt; &gt; +        return displayNameBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setDisplayNameBeans(Collection&lt;DisplayNameBean&gt; displayNameBeans)
&gt; &gt; +    {
&gt; &gt; +        this.displayNameBeans = displayNameBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElementWrapper(name="descriptions")
&gt; &gt; +    @XmlElements(@XmlElement(name="description"))
&gt; &gt; +    public Collection&lt;DescriptionBean&gt; getDescriptionBeans()
&gt; &gt; +    {
&gt; &gt; +        return descriptionBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setDescriptionBeans(Collection&lt;DescriptionBean&gt; descriptionBeans)
&gt; &gt; +    {
&gt; &gt; +        this.descriptionBeans = descriptionBeans;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,53 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +import java.util.Collection;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlElement;
&gt; &gt; +import javax.xml.bind.annotation.XmlElements;
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * PortletApplicationBeans
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="applications")
&gt; &gt; +public class PortletApplicationBeans implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private Collection&lt;PortletApplicationBean&gt; portletApplicationBeans;
&gt; &gt; +    
&gt; &gt; +    public PortletApplicationBeans()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    @XmlElements(@XmlElement(name="application"))
&gt; &gt; +    public Collection&lt;PortletApplicationBean&gt; getPortletApplicationBeans()
&gt; &gt; +    {
&gt; &gt; +        return portletApplicationBeans;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public void setPortletApplicationBeans(Collection&lt;PortletApplicationBean&gt; portletApplicationBeans)
&gt; &gt; +    {
&gt; &gt; +        this.portletApplicationBeans = portletApplicationBeans;
&gt; &gt; +    }
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,171 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +import java.util.ArrayList;
&gt; &gt; +import java.util.Collection;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlElement;
&gt; &gt; +import javax.xml.bind.annotation.XmlElementWrapper;
&gt; &gt; +import javax.xml.bind.annotation.XmlElements;
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.om.portlet.Description;
&gt; &gt; +import org.apache.jetspeed.om.portlet.DisplayName;
&gt; &gt; +import org.apache.jetspeed.om.portlet.Language;
&gt; &gt; +import org.apache.jetspeed.om.portlet.PortletDefinition;
&gt; &gt; +import org.apache.jetspeed.om.portlet.Supports;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * PortletDefinitionBean
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="definition")
&gt; &gt; +public class PortletDefinitionBean implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private String applicationName;
&gt; &gt; +    private String portletName;
&gt; &gt; +    private PortletInfoBean portletInfoBean;
&gt; &gt; +    private Collection&lt;DisplayNameBean&gt; displayNameBeans;
&gt; &gt; +    private Collection&lt;DescriptionBean&gt; descriptionBeans;
&gt; &gt; +    private Collection&lt;SupportsBean&gt; supportsBeans;
&gt; &gt; +    private Collection&lt;LanguageBean&gt; languageBeans;
&gt; &gt; +    
&gt; &gt; +    public PortletDefinitionBean()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public PortletDefinitionBean(final PortletDefinition portletDefinition)
&gt; &gt; +    {
&gt; &gt; +        applicationName = portletDefinition.getApplication().getName();
&gt; &gt; +        portletName = portletDefinition.getPortletName();
&gt; &gt; +        portletInfoBean = new PortletInfoBean(portletDefinition.getPortletInfo());
&gt; &gt; +        
&gt; &gt; +        ArrayList&lt;DisplayNameBean&gt; displayNameBeanList = new ArrayList&lt;DisplayNameBean&gt;();
&gt; &gt; +        for (DisplayName displayName : portletDefinition.getDisplayNames())
&gt; &gt; +        {
&gt; &gt; +            displayNameBeanList.add(new DisplayNameBean(displayName));
&gt; &gt; +        }
&gt; &gt; +        displayNameBeans = displayNameBeanList;
&gt; &gt; +        
&gt; &gt; +        ArrayList&lt;DescriptionBean&gt; descriptionBeanList = new ArrayList&lt;DescriptionBean&gt;();
&gt; &gt; +        for (Description description : portletDefinition.getDescriptions())
&gt; &gt; +        {
&gt; &gt; +            descriptionBeanList.add(new DescriptionBean(description));
&gt; &gt; +        }
&gt; &gt; +        descriptionBeans = descriptionBeanList;
&gt; &gt; +        
&gt; &gt; +        ArrayList&lt;SupportsBean&gt; supportsBeanList = new ArrayList&lt;SupportsBean&gt;();
&gt; &gt; +        for (Supports supports : portletDefinition.getSupports())
&gt; &gt; +        {
&gt; &gt; +            supportsBeanList.add(new SupportsBean(supports));
&gt; &gt; +        }
&gt; &gt; +        supportsBeans = supportsBeanList;
&gt; &gt; +        
&gt; &gt; +        ArrayList&lt;LanguageBean&gt; languageBeanList = new ArrayList&lt;LanguageBean&gt;();
&gt; &gt; +        for (Language language : portletDefinition.getLanguages())
&gt; &gt; +        {
&gt; &gt; +            languageBeanList.add(new LanguageBean(language));
&gt; &gt; +        }
&gt; &gt; +        languageBeans = languageBeanList;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getApplicationName()
&gt; &gt; +    {
&gt; &gt; +        return applicationName;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setApplicationName(String applicationName)
&gt; &gt; +    {
&gt; &gt; +        this.applicationName = applicationName;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getPortletName()
&gt; &gt; +    {
&gt; &gt; +        return portletName;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setPortletName(String portletName)
&gt; &gt; +    {
&gt; &gt; +        this.portletName = portletName;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElement(name="portletInfo")
&gt; &gt; +    public PortletInfoBean getPortletInfoBean()
&gt; &gt; +    {
&gt; &gt; +        return portletInfoBean;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setPortletInfoBean(PortletInfoBean portletInfoBean)
&gt; &gt; +    {
&gt; &gt; +        this.portletInfoBean = portletInfoBean;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElementWrapper(name="displayNames")
&gt; &gt; +    @XmlElements(@XmlElement(name="displayName"))
&gt; &gt; +    public Collection&lt;DisplayNameBean&gt; getDisplayNameBeans()
&gt; &gt; +    {
&gt; &gt; +        return displayNameBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setDisplayNameBeans(Collection&lt;DisplayNameBean&gt; displayNameBeans)
&gt; &gt; +    {
&gt; &gt; +        this.displayNameBeans = displayNameBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElementWrapper(name="descriptions")
&gt; &gt; +    @XmlElements(@XmlElement(name="description"))
&gt; &gt; +    public Collection&lt;DescriptionBean&gt; getDescriptionBeans()
&gt; &gt; +    {
&gt; &gt; +        return descriptionBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setDescriptionBeans(Collection&lt;DescriptionBean&gt; descriptionBeans)
&gt; &gt; +    {
&gt; &gt; +        this.descriptionBeans = descriptionBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElementWrapper(name="supports")
&gt; &gt; +    @XmlElements(@XmlElement(name="support"))
&gt; &gt; +    public Collection&lt;SupportsBean&gt; getSupportsBeans()
&gt; &gt; +    {
&gt; &gt; +        return supportsBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setSupportsBeans(Collection&lt;SupportsBean&gt; supportsBeans)
&gt; &gt; +    {
&gt; &gt; +        this.supportsBeans = supportsBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElementWrapper(name="languages")
&gt; &gt; +    @XmlElements(@XmlElement(name="language"))
&gt; &gt; +    public Collection&lt;LanguageBean&gt; getLanguageBeans()
&gt; &gt; +    {
&gt; &gt; +        return languageBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setLanguageBeans(Collection&lt;LanguageBean&gt; languageBeans)
&gt; &gt; +    {
&gt; &gt; +        this.languageBeans = languageBeans;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,54 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +import java.util.Collection;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlElement;
&gt; &gt; +import javax.xml.bind.annotation.XmlElements;
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * PortletDefinitionBeans
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="definitions")
&gt; &gt; +public class PortletDefinitionBeans implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private Collection&lt;PortletDefinitionBean&gt; portletDefinitionBeans;
&gt; &gt; +    
&gt; &gt; +    public PortletDefinitionBeans()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    @XmlElements(@XmlElement(name="definition"))
&gt; &gt; +    public Collection&lt;PortletDefinitionBean&gt; getPortletDefinitionBean()
&gt; &gt; +    {
&gt; &gt; +        return portletDefinitionBeans;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public void setPortletApplicationBeans(Collection&lt;PortletDefinitionBean&gt; portletDefinitionBeans)
&gt; &gt; +    {
&gt; &gt; +        this.portletDefinitionBeans = portletDefinitionBeans;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,81 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.om.portlet.PortletInfo;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * PortletInfoBean
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="portletInfo")
&gt; &gt; +public class PortletInfoBean implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private String keywords;
&gt; &gt; +    private String shortTitle;
&gt; &gt; +    private String title;
&gt; &gt; +    
&gt; &gt; +    public PortletInfoBean()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public PortletInfoBean(final PortletInfo portletInfo)
&gt; &gt; +    {
&gt; &gt; +        keywords = portletInfo.getKeywords();
&gt; &gt; +        shortTitle = portletInfo.getShortTitle();
&gt; &gt; +        title = portletInfo.getTitle();
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getKeywords()
&gt; &gt; +    {
&gt; &gt; +        return keywords;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setKeywords(String keywords)
&gt; &gt; +    {
&gt; &gt; +        this.keywords = keywords;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getShortTitle()
&gt; &gt; +    {
&gt; &gt; +        return shortTitle;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setShortTitle(String shortTitle)
&gt; &gt; +    {
&gt; &gt; +        this.shortTitle = shortTitle;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getTitle()
&gt; &gt; +    {
&gt; &gt; +        return title;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setTitle(String title)
&gt; &gt; +    {
&gt; &gt; +        this.title = title;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,89 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +import java.util.Collection;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlElement;
&gt; &gt; +import javax.xml.bind.annotation.XmlElementWrapper;
&gt; &gt; +import javax.xml.bind.annotation.XmlElements;
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.om.portlet.Supports;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * SupportsBean
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="support")
&gt; &gt; +public class SupportsBean implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private String mimeType;
&gt; &gt; +    private Collection&lt;String&gt; portletModes;
&gt; &gt; +    private Collection&lt;String&gt; windowStates;
&gt; &gt; +
&gt; &gt; +    public SupportsBean()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public SupportsBean(final Supports supports)
&gt; &gt; +    {
&gt; &gt; +        mimeType = supports.getMimeType();
&gt; &gt; +        portletModes = supports.getPortletModes();
&gt; &gt; +        windowStates = supports.getWindowStates();
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getMimeType()
&gt; &gt; +    {
&gt; &gt; +        return mimeType;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setMimeType(String mimeType)
&gt; &gt; +    {
&gt; &gt; +        this.mimeType = mimeType;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElementWrapper(name="portletModes")
&gt; &gt; +    @XmlElements(@XmlElement(name="portletMode"))
&gt; &gt; +    public Collection&lt;String&gt; getPortletModes()
&gt; &gt; +    {
&gt; &gt; +        return portletModes;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setPortletModes(Collection&lt;String&gt; portletModes)
&gt; &gt; +    {
&gt; &gt; +        this.portletModes = portletModes;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElementWrapper(name="windowStates")
&gt; &gt; +    @XmlElements(@XmlElement(name="windowState"))
&gt; &gt; +    public Collection&lt;String&gt; getWindowStates()
&gt; &gt; +    {
&gt; &gt; +        return windowStates;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setWindowStates(Collection&lt;String&gt; windowStates)
&gt; &gt; +    {
&gt; &gt; +        this.windowStates = windowStates;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,147 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.rest;
&gt; &gt; +
&gt; &gt; +import java.util.ArrayList;
&gt; &gt; +import java.util.List;
&gt; &gt; +
&gt; &gt; +import javax.servlet.ServletConfig;
&gt; &gt; +import javax.servlet.ServletContext;
&gt; &gt; +import javax.servlet.http.HttpServletRequest;
&gt; &gt; +import javax.ws.rs.GET;
&gt; &gt; +import javax.ws.rs.Path;
&gt; &gt; +import javax.ws.rs.PathParam;
&gt; &gt; +import javax.ws.rs.core.Context;
&gt; &gt; +import javax.ws.rs.core.UriInfo;
&gt; &gt; +
&gt; &gt; +import org.apache.commons.lang.StringUtils;
&gt; &gt; +import org.apache.jetspeed.Jetspeed;
&gt; &gt; +import org.apache.jetspeed.components.portletregistry.PortletRegistry;
&gt; &gt; +import org.apache.jetspeed.om.portlet.PortletApplication;
&gt; &gt; +import org.apache.jetspeed.om.portlet.PortletDefinition;
&gt; &gt; +import org.apache.jetspeed.services.beans.PortletApplicationBean;
&gt; &gt; +import org.apache.jetspeed.services.beans.PortletApplicationBeans;
&gt; &gt; +import org.apache.jetspeed.services.beans.PortletDefinitionBean;
&gt; &gt; +import org.apache.jetspeed.services.beans.PortletDefinitionBeans;
&gt; &gt; +import org.slf4j.Logger;
&gt; &gt; +import org.slf4j.LoggerFactory;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * PortletRegistryService
&gt; &gt; + * 
&gt; &gt; + * @vesion $Id$
&gt; &gt; + */
&gt; &gt; +
&gt; &gt; +@Path("/portletregistry/")
&gt; &gt; +public class PortletRegistryService
&gt; &gt; +{
&gt; &gt; +    
&gt; &gt; +    private static Logger log = LoggerFactory.getLogger(PortletRegistryService.class);
&gt; &gt; +    
&gt; &gt; +    @Context
&gt; &gt; +    private ServletConfig servletConfig;
&gt; &gt; +    
&gt; &gt; +    @Context
&gt; &gt; +    private ServletContext servletContext;
&gt; &gt; +    
&gt; &gt; +    @Context
&gt; &gt; +    private HttpServletRequest servletRequest;
&gt; &gt; +    
&gt; &gt; +    @Context
&gt; &gt; +    private UriInfo uriInfo;
&gt; &gt; +    
&gt; &gt; +    private PortletRegistry portletRegistry;
&gt; &gt; +    
&gt; &gt; +    public PortletRegistryService()
&gt; &gt; +    {
&gt; &gt; +        portletRegistry = (PortletRegistry) Jetspeed.getComponentManager().getComponent(PortletRegistry.class);
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    @GET
&gt; &gt; +    @Path("/application/{name}")
&gt; &gt; +    public PortletApplicationBeans getPortletApplication(@PathParam("name") String name)
&gt; &gt; +    {
&gt; &gt; +        PortletApplicationBeans paBeans = new PortletApplicationBeans();
&gt; &gt; +        List&lt;PortletApplicationBean&gt; paBeanList = new ArrayList&lt;PortletApplicationBean&gt;();
&gt; &gt; +        
&gt; &gt; +        if (StringUtils.isBlank(name))
&gt; &gt; +        {
&gt; &gt; +            for (PortletApplication pa : portletRegistry.getPortletApplications())
&gt; &gt; +            {
&gt; &gt; +                paBeanList.add(new PortletApplicationBean(pa));
&gt; &gt; +            }
&gt; &gt; +        }
&gt; &gt; +        else
&gt; &gt; +        {
&gt; &gt; +            PortletApplication pa = portletRegistry.getPortletApplication(name, true);
&gt; &gt; +            
&gt; &gt; +            if (pa != null)
&gt; &gt; +            {
&gt; &gt; +                paBeanList.add(new PortletApplicationBean(pa));
&gt; &gt; +            }
&gt; &gt; +        }
&gt; &gt; +        
&gt; &gt; +        paBeans.setPortletApplicationBeans(paBeanList);
&gt; &gt; +        return paBeans;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    @GET
&gt; &gt; +    @Path("/definition/{uniqueName}")
&gt; &gt; +    public PortletDefinitionBeans getPortletDefinition(@PathParam("uniqueName") String uniqueName)
&gt; &gt; +    {
&gt; &gt; +        PortletDefinitionBeans pdBeans = new PortletDefinitionBeans();
&gt; &gt; +        List&lt;PortletDefinitionBean&gt; pdBeanList = new ArrayList&lt;PortletDefinitionBean&gt;();
&gt; &gt; +        
&gt; &gt; +        if (StringUtils.isBlank(uniqueName))
&gt; &gt; +        {
&gt; &gt; +            for (PortletDefinition pd : portletRegistry.getAllPortletDefinitions())
&gt; &gt; +            {
&gt; &gt; +                pdBeanList.add(new PortletDefinitionBean(pd));
&gt; &gt; +            }
&gt; &gt; +        }
&gt; &gt; +        else
&gt; &gt; +        {
&gt; &gt; +            int offset = uniqueName.indexOf("::");
&gt; &gt; +            
&gt; &gt; +            if (offset != -1)
&gt; &gt; +            {
&gt; &gt; +                PortletDefinition pd = portletRegistry.getPortletDefinitionByUniqueName(uniqueName, true);
&gt; &gt; +                
&gt; &gt; +                if (pd != null)
&gt; &gt; +                {
&gt; &gt; +                    pdBeanList.add(new PortletDefinitionBean(pd));
&gt; &gt; +                }
&gt; &gt; +            }
&gt; &gt; +            else
&gt; &gt; +            {
&gt; &gt; +                PortletApplication pa = portletRegistry.getPortletApplication(uniqueName, true);
&gt; &gt; +                
&gt; &gt; +                if (pa != null)
&gt; &gt; +                {
&gt; &gt; +                    for (PortletDefinition pd : pa.getPortlets())
&gt; &gt; +                    {
&gt; &gt; +                        pdBeanList.add(new PortletDefinitionBean(pd));
&gt; &gt; +                    }
&gt; &gt; +                }
&gt; &gt; +            }
&gt; &gt; +        }
&gt; &gt; +        
&gt; &gt; +        pdBeans.setPortletApplicationBeans(pdBeanList);
&gt; &gt; +        return pdBeans;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,55 @@
&gt; &gt; +&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&gt; &gt; +&lt;!--
&gt; &gt; +  Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; +  contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; +  this work for additional information regarding copyright ownership.
&gt; &gt; +  The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; +  (the "License"); you may not use this file except in compliance with
&gt; &gt; +  the License.  You may obtain a copy of the License at
&gt; &gt; +  
&gt; &gt; +  http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; +  
&gt; &gt; +  Unless required by applicable law or agreed to in writing, software
&gt; &gt; +  distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; +  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; +  See the License for the specific language governing permissions and
&gt; &gt; +  limitations under the License.
&gt; &gt; +--&gt;
&gt; &gt; +&lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
&gt; &gt; +  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"&gt;
&gt; &gt; +  
&gt; &gt; +  &lt;bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"&gt;
&gt; &gt; +    &lt;property name="targetClass" value="java.lang.System"/&gt;
&gt; &gt; +    &lt;property name="targetMethod" value="setProperty"/&gt;
&gt; &gt; +    &lt;property name="arguments"&gt;
&gt; &gt; +      &lt;list&gt;
&gt; &gt; +        &lt;value&gt;org.apache.cxf.Logger&lt;/value&gt;
&gt; &gt; +        &lt;value&gt;org.apache.cxf.common.logging.Log4jLogger&lt;/value&gt;
&gt; &gt; +      &lt;/list&gt;
&gt; &gt; +    &lt;/property&gt;
&gt; &gt; +  &lt;/bean&gt;
&gt; &gt; +  
&gt; &gt; +  &lt;bean id="cxfServlet" class="org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet"&gt;
&gt; &gt; +    &lt;meta key="j2:cat" value="default" /&gt;
&gt; &gt; +  &lt;/bean&gt;
&gt; &gt; +  
&gt; &gt; +  &lt;bean id="cxfServletConfig" class="org.apache.jetspeed.pipeline.valve.impl.ServletDelegatingValve$ServletConfigImpl"&gt;
&gt; &gt; +    &lt;meta key="j2:cat" value="default" /&gt;
&gt; &gt; +    &lt;constructor-arg value="CXFNonSpringJaxrsServlet" /&gt;
&gt; &gt; +    &lt;constructor-arg&gt;
&gt; &gt; +      &lt;props&gt;
&gt; &gt; +        &lt;!-- White space separted resource class names --&gt;
&gt; &gt; +        &lt;prop key="jaxrs.serviceClasses"&gt;
&gt; &gt; +          org.apache.jetspeed.services.rest.PortletRegistryService
&gt; &gt; +        &lt;/prop&gt;
&gt; &gt; +      &lt;/props&gt;
&gt; &gt; +    &lt;/constructor-arg&gt;
&gt; &gt; +    &lt;property name="servletContext"&gt;
&gt; &gt; +      &lt;bean class="org.springframework.beans.factory.config.PropertyPathFactoryBean"&gt;
&gt; &gt; +        &lt;property name="targetObject" ref="javax.servlet.ServletConfig" /&gt;
&gt; &gt; +        &lt;property name="propertyPath" value="servletContext"/&gt;
&gt; &gt; +      &lt;/bean&gt;
&gt; &gt; +    &lt;/property&gt;
&gt; &gt; +  &lt;/bean&gt;
&gt; &gt; +  
&gt; &gt; +&lt;/beans&gt;
&gt; &gt; \ No newline at end of file
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml (original)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -349,7 +349,14 @@
&gt; &gt;        &lt;ref bean="RolesSecurityBehavior" /&gt;
&gt; &gt;      &lt;/constructor-arg&gt;
&gt; &gt;    &lt;/bean&gt;
&gt; &gt; -
&gt; &gt; +  
&gt; &gt; +  &lt;bean id="RestfulServicesValve" class="org.apache.jetspeed.pipeline.valve.impl.ServletDelegatingValve" 
&gt; &gt; +        init-method="initialize" destroy-method="destroy"&gt;
&gt; &gt; +    &lt;meta key="j2:cat" value="default" /&gt;
&gt; &gt; +    &lt;constructor-arg ref="cxfServlet" /&gt;
&gt; &gt; +    &lt;constructor-arg ref="cxfServletConfig" /&gt;
&gt; &gt; +  &lt;/bean&gt;
&gt; &gt; +  
&gt; &gt;    &lt;bean id="DecorationValve" class="org.apache.jetspeed.decoration.DecorationValve" init-method="initialize"&gt;
&gt; &gt;      &lt;meta key="j2:cat" value="default" /&gt;
&gt; &gt;      &lt;constructor-arg index='0'&gt;
&gt; &gt; @@ -714,6 +721,25 @@
&gt; &gt;      &lt;/constructor-arg&gt;
&gt; &gt;    &lt;/bean&gt;
&gt; &gt;  
&gt; &gt; +  &lt;bean id="restful-services-pipeline" class="org.apache.jetspeed.pipeline.JetspeedPipeline" init-method="initialize"&gt;
&gt; &gt; +    &lt;meta key="j2:cat" value="default" /&gt;
&gt; &gt; +    &lt;constructor-arg&gt;
&gt; &gt; +      &lt;value&gt;RestfulServicesPipeline&lt;/value&gt;
&gt; &gt; +    &lt;/constructor-arg&gt;
&gt; &gt; +    &lt;constructor-arg&gt;
&gt; &gt; +      &lt;list&gt;
&gt; &gt; +        &lt;ref bean="capabilityValve" /&gt;
&gt; &gt; +        &lt;ref bean="portalURLValve" /&gt;
&gt; &gt; +        &lt;ref bean="securityValve" /&gt;
&gt; &gt; +        &lt;ref bean="localizationValve" /&gt;
&gt; &gt; +        &lt;ref bean="profilerValve" /&gt;
&gt; &gt; +        &lt;ref bean="refreshUserHomepageValve" /&gt;
&gt; &gt; +        &lt;ref bean="containerValve" /&gt;
&gt; &gt; +        &lt;ref bean="RestfulServicesValve" /&gt;
&gt; &gt; +      &lt;/list&gt;
&gt; &gt; +    &lt;/constructor-arg&gt;
&gt; &gt; +  &lt;/bean&gt;
&gt; &gt; +  
&gt; &gt;    &lt;bean id="fileserver-pipeline" class="org.apache.jetspeed.pipeline.JetspeedPipeline" init-method="initialize"&gt;
&gt; &gt;      &lt;meta key="j2:cat" value="default" /&gt;
&gt; &gt;      &lt;constructor-arg&gt;
&gt; &gt; @@ -793,18 +819,21 @@
&gt; &gt;          &lt;entry key='/portal'&gt;
&gt; &gt;            &lt;value&gt;jetspeed-pipeline&lt;/value&gt;
&gt; &gt;          &lt;/entry&gt;
&gt; &gt; -        &lt;entry key='/ajaxapi'&gt;
&gt; &gt; -          &lt;value&gt;ajax-pipeline&lt;/value&gt;
&gt; &gt; -        &lt;/entry&gt;
&gt; &gt;          &lt;entry key='/login'&gt;
&gt; &gt;            &lt;value&gt;jetspeed-pipeline&lt;/value&gt;
&gt; &gt;          &lt;/entry&gt;
&gt; &gt;          &lt;entry key='/fileserver'&gt;
&gt; &gt;            &lt;value&gt;fileserver-pipeline&lt;/value&gt;
&gt; &gt;          &lt;/entry&gt;
&gt; &gt; +        &lt;entry key='/ajaxapi'&gt;
&gt; &gt; +          &lt;value&gt;ajax-pipeline&lt;/value&gt;
&gt; &gt; +        &lt;/entry&gt;
&gt; &gt;          &lt;entry key='/ajax'&gt;
&gt; &gt;            &lt;value&gt;ajax-direct-pipeline&lt;/value&gt;
&gt; &gt;          &lt;/entry&gt;
&gt; &gt; +        &lt;entry key='/services'&gt;
&gt; &gt; +          &lt;value&gt;restful-services-pipeline&lt;/value&gt;
&gt; &gt; +        &lt;/entry&gt;
&gt; &gt;          &lt;entry key='/desktop'&gt;
&gt; &gt;            &lt;value&gt;desktop-pipeline&lt;/value&gt;
&gt; &gt;          &lt;/entry&gt;&lt;!-- for jetspeed desktop, the keys /desktop, /action and /render cannot be changed --&gt;
&gt; &gt; 
&gt; &gt; Modified: portals/jetspeed-2/portal/trunk/pom.xml
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/pom.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/pom.xml (original)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/pom.xml Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -269,6 +269,7 @@
&gt; &gt;      &lt;javax.servlet.jsp.version&gt;2.0&lt;/javax.servlet.jsp.version&gt;
&gt; &gt;      &lt;javax.sql.version&gt;2.0&lt;/javax.sql.version&gt;
&gt; &gt;      &lt;javax.transaction.version&gt;1.0.1B&lt;/javax.transaction.version&gt;
&gt; &gt; +    &lt;javax.ws.rs.version&gt;1.0&lt;/javax.ws.rs.version&gt;
&gt; &gt;      &lt;jaxen.version&gt;1.0-FCS&lt;/jaxen.version&gt;
&gt; &gt;      &lt;jaxb.version&gt;2.1&lt;/jaxb.version&gt;
&gt; &gt;      &lt;jaxb-impl.version&gt;2.1.9&lt;/jaxb-impl.version&gt;
&gt; &gt; @@ -311,6 +312,7 @@
&gt; &gt;      &lt;ccpp.version&gt;1.0&lt;/ccpp.version&gt;
&gt; &gt;      &lt;commonj.version&gt;1.1&lt;/commonj.version&gt;
&gt; &gt;      &lt;tyrex.version&gt;1.0.1&lt;/tyrex.version&gt;
&gt; &gt; +    &lt;cxf.version&gt;2.2.5&lt;/cxf.version&gt;
&gt; &gt;    &lt;/properties&gt;
&gt; &gt;  
&gt; &gt;    &lt;!-- Dependency Configuration --&gt;
&gt; &gt; @@ -974,7 +976,44 @@
&gt; &gt;          &lt;artifactId&gt;jaxb-impl&lt;/artifactId&gt;
&gt; &gt;          &lt;version&gt;${jaxb-impl.version}&lt;/version&gt;
&gt; &gt;        &lt;/dependency&gt;
&gt; &gt; -
&gt; &gt; +      
&gt; &gt; +      &lt;!-- JAX-RS --&gt;
&gt; &gt; +      &lt;dependency&gt;
&gt; &gt; +        &lt;groupId&gt;javax.ws.rs&lt;/groupId&gt;
&gt; &gt; +        &lt;artifactId&gt;jsr311-api&lt;/artifactId&gt;
&gt; &gt; +        &lt;version&gt;${javax.ws.rs.version}&lt;/version&gt;
&gt; &gt; +      &lt;/dependency&gt;
&gt; &gt; +      
&gt; &gt; +      &lt;!-- CXF --&gt;
&gt; &gt; +      &lt;dependency&gt;
&gt; &gt; +        &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
&gt; &gt; +        &lt;artifactId&gt;cxf-rt-frontend-jaxrs&lt;/artifactId&gt;
&gt; &gt; +        &lt;version&gt;${cxf.version}&lt;/version&gt;
&gt; &gt; +        &lt;scope&gt;runtime&lt;/scope&gt;
&gt; &gt; +        &lt;exclusions&gt;
&gt; &gt; +          &lt;exclusion&gt;
&gt; &gt; +            &lt;groupId&gt;commons-logging&lt;/groupId&gt;
&gt; &gt; +            &lt;artifactId&gt;commons-logging&lt;/artifactId&gt;
&gt; &gt; +          &lt;/exclusion&gt;
&gt; &gt; +          &lt;exclusion&gt;
&gt; &gt; +            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; &gt; +            &lt;artifactId&gt;spring-core&lt;/artifactId&gt;
&gt; &gt; +          &lt;/exclusion&gt;
&gt; &gt; +          &lt;exclusion&gt;
&gt; &gt; +            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; &gt; +            &lt;artifactId&gt;spring-beans&lt;/artifactId&gt;
&gt; &gt; +          &lt;/exclusion&gt;
&gt; &gt; +          &lt;exclusion&gt;
&gt; &gt; +            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; &gt; +            &lt;artifactId&gt;spring-context&lt;/artifactId&gt;
&gt; &gt; +          &lt;/exclusion&gt;
&gt; &gt; +          &lt;exclusion&gt;
&gt; &gt; +            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; &gt; +            &lt;artifactId&gt;spring-web&lt;/artifactId&gt;
&gt; &gt; +          &lt;/exclusion&gt;
&gt; &gt; +        &lt;/exclusions&gt;
&gt; &gt; +      &lt;/dependency&gt;
&gt; &gt; +      
&gt; &gt;        &lt;!-- Test --&gt;
&gt; &gt;        &lt;dependency&gt;
&gt; &gt;          &lt;groupId&gt;junit&lt;/groupId&gt;
&gt; &gt; 
&gt; &gt; 
&gt; &gt; 
&gt; &gt; ---------------------------------------------------------------------
&gt; &gt; To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
&gt; &gt; For additional commands, e-mail: jetspeed-dev-help@portals.apache.org
&gt; &gt; 
&gt; 
&gt; 
&gt; 
&gt;      
&gt; 
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
&gt; For additional commands, e-mail: jetspeed-dev-help@portals.apache.org
&gt; 



      

---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Other toolkits</title>
<author><name>Gonzalo Aguilar Delgado &lt;gaguilar@aguilardelgado.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c1259327656.11940.31.camel@azul1%3e"/>
<id>urn:uuid:%3c1259327656-11940-31-camel@azul1%3e</id>
<updated>2009-11-27T13:14:16Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
First of all... I know that this proposition doubles work...

But can at least leave door open for other AJAX toolkits?

I mean, it would be nice if ajax implementation doesn't rely on only one
toolkit or implementation. So others can implement their own. 

Maybe I can propone patches to leave door open to other toolkits and
make
jetspeed interface generic...

Tnx


</pre>
</div>
</content>
</entry>
<entry>
<title>Re: svn commit: r884670 - in /portals/jetspeed-2/portal/trunk: ./ applications/jetspeed/src/main/resources/ applications/jetspeed/src/main/webapp/WEB-INF/ components/jetspeed-portal/ components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/val...</title>
<author><name>Gonzalo Aguilar Delgado &lt;gaguilar@aguilardelgado.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c1259327452.11940.27.camel@azul1%3e"/>
<id>urn:uuid:%3c1259327452-11940-27-camel@azul1%3e</id>
<updated>2009-11-27T13:10:52Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Hi Woonsan, 

Ok. I will try to implement this into the toolbox and add a new service
to get all categories. So they will 
be updated dynamically when new apps are added. This also will help me
to dive into JAX-RS services.

I also recommend to set default category in toolbox to "News" or some
other because it will get messy
when lot's of portlets are in place. Can I do it also?

Tnx

El vie, 27-11-2009 a las 04:59 -0800, Woonsan Ko escribiÃ³:

&gt; Hi Gonzalo,
&gt; 
&gt; Yes, I'm implementing JAX-RS services which possibly replaces the old ajax apis. It should be regarded as a prototype until other committers get satisfied with this new one.
&gt; However, I'd like to see this new JAX-RS service used in the toolbox portlet. It would help evaluation. 
&gt; If you are interested in this, please dive into it. I will really appreciate it. :-)
&gt; 
&gt; By the way, many Jetspeed developers prefer json to xml, so I think we'd better use json marshaling instead of xml marshaling in toolbox portlet.
&gt; Also, I found a problem to fix. It should be more consistently mappable between xml and json marshaling. I hope to fix these today. I will update the status in the commit messages.
&gt; FYI, you can use json marshaling by adding "?_type=json" parameter as follows:
&gt; 
&gt; (1) GET all PAs: http://localhost:8080/jetspeed/services/portletregistry/application/%20?_type=json
&gt; (2) GET demo PA: http://localhost:8080/jetspeed/services/portletregistry/application/demo/?_type=json
&gt; (3) GET all PDs: http://localhost:8080/jetspeed/services/portletregistry/definition/%20?_type=json
&gt; (4) GET all PDs of demo PA: http://localhost:8080/jetspeed/services/portletregistry/definition/demo/?_type=json
&gt; (5) GET demo::PickANumberPortlet PD: http://localhost:8080/jetspeed/services/portletregistry/definition/demo::PickANumberPortlet/?_type=json
&gt; 
&gt; Apache CXF allows to change marshaling types by Accept header as well, but I think this is very handy.
&gt; 
&gt; Kind regards,
&gt; 
&gt; Woonsan
&gt; 
&gt; 
&gt; 
&gt; ----- Original Message ----
&gt; From: Gonzalo Aguilar Delgado &lt;gaguilar@aguilardelgado.com&gt;
&gt; To: Jetspeed Developers List &lt;jetspeed-dev@portals.apache.org&gt;
&gt; Sent: Fri, November 27, 2009 1:26:28 PM
&gt; Subject: Re: svn commit: r884670 - in /portals/jetspeed-2/portal/trunk: ./ applications/jetspeed/src/main/resources/ applications/jetspeed/src/main/webapp/WEB-INF/ components/jetspeed-portal/ components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/val...
&gt; 
&gt; Woonsan, 
&gt; 
&gt; Is this a new type of service implementation? Will Jetspeed go in that
&gt; direction?
&gt; 
&gt; Do you want me to put this into the toolbox?
&gt; 
&gt; Tnx
&gt; 
&gt; 
&gt; El jue, 26-11-2009 a las 19:21 +0000, woonsan@apache.org escribiÃ³:
&gt; 
&gt; &gt; Author: woonsan
&gt; &gt; Date: Thu Nov 26 19:21:39 2009
&gt; &gt; New Revision: 884670
&gt; &gt; 
&gt; &gt; URL: http://svn.apache.org/viewvc?rev=884670&amp;view=rev
&gt; &gt; Log:
&gt; &gt; JS2-1087: Adding initial JAX-RS support as prototype
&gt; &gt; The following urls are testable:
&gt; &gt; 
&gt; &gt; (1) GET all PAs: http://localhost:8080/jetspeed/services/portletregistry/application/%20
&gt; &gt; (2) GET demo PA: http://localhost:8080/jetspeed/services/portletregistry/application/demo/
&gt; &gt; (3) GET all PDs: http://localhost:8080/jetspeed/services/portletregistry/definition/%20
&gt; &gt; (4) GET all PDs of demo PA: http://localhost:8080/jetspeed/services/portletregistry/definition/demo/
&gt; &gt; (5) GET demo::PickANumberPortlet PD: http://localhost:8080/jetspeed/services/portletregistry/definition/demo::PickANumberPortlet/
&gt; &gt; 
&gt; &gt; TODO: Remove '%20' in the urls to indicate '*', test with json client and integrate it with toolbox portlet.
&gt; &gt; 
&gt; &gt; Added:
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java   (with props)
&gt; &gt;     portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml   (with props)
&gt; &gt; Modified:
&gt; &gt;     portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml
&gt; &gt;     portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml
&gt; &gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/   (props changed)
&gt; &gt;     portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml
&gt; &gt;     portals/jetspeed-2/portal/trunk/pom.xml
&gt; &gt; 
&gt; &gt; Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml (original)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -94,7 +94,15 @@
&gt; &gt;        &lt;param name="ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} %-5p [%C.%M():%L] %m%n"/&gt;
&gt; &gt;      &lt;/layout&gt;
&gt; &gt;    &lt;/appender&gt;
&gt; &gt; -
&gt; &gt; +  
&gt; &gt; +  &lt;!-- cxf appender --&gt;
&gt; &gt; +  &lt;appender name="cxf" class="org.apache.log4j.FileAppender"&gt;
&gt; &gt; +    &lt;param name="File" value="${org.apache.portals.logdir}/jetspeed-cxf.log"/&gt;
&gt; &gt; +    &lt;layout class="org.apache.log4j.PatternLayout"&gt;
&gt; &gt; +      &lt;param name="ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} %-5p [%C.%M():%L] %m%n"/&gt;
&gt; &gt; +    &lt;/layout&gt;
&gt; &gt; +  &lt;/appender&gt;
&gt; &gt; +  
&gt; &gt;    &lt;!-- ====================================================================== --&gt;
&gt; &gt;    &lt;!-- L O G G E R S                                                          --&gt;
&gt; &gt;    &lt;!-- ====================================================================== --&gt;
&gt; &gt; @@ -134,6 +142,11 @@
&gt; &gt;      &lt;appender-ref ref="ojb"/&gt;
&gt; &gt;    &lt;/category&gt;
&gt; &gt;    
&gt; &gt; +  &lt;category additivity="false" name="org.apache.cxf"&gt;
&gt; &gt; +    &lt;level value="ERROR"/&gt;
&gt; &gt; +    &lt;appender-ref ref="cxf"/&gt;
&gt; &gt; +  &lt;/category&gt;
&gt; &gt; +  
&gt; &gt;    &lt;category additivity="false" name="scheduler"&gt;
&gt; &gt;      &lt;level value="ERROR"/&gt;
&gt; &gt;      &lt;appender-ref ref="scheduler"/&gt;
&gt; &gt; 
&gt; &gt; Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml (original)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -180,6 +180,10 @@
&gt; &gt;    &lt;/servlet-mapping&gt;
&gt; &gt;    &lt;servlet-mapping&gt;
&gt; &gt;      &lt;servlet-name&gt;jetspeed&lt;/servlet-name&gt;
&gt; &gt; +    &lt;url-pattern&gt;/services/*&lt;/url-pattern&gt;
&gt; &gt; +  &lt;/servlet-mapping&gt;
&gt; &gt; +  &lt;servlet-mapping&gt;
&gt; &gt; +    &lt;servlet-name&gt;jetspeed&lt;/servlet-name&gt;
&gt; &gt;      &lt;url-pattern&gt;/desktop/*&lt;/url-pattern&gt;
&gt; &gt;    &lt;/servlet-mapping&gt;
&gt; &gt;    &lt;servlet-mapping&gt;
&gt; &gt; 
&gt; &gt; Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml (original)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -165,6 +165,15 @@
&gt; &gt;        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; &gt;        &lt;artifactId&gt;spring-context-support&lt;/artifactId&gt;
&gt; &gt;      &lt;/dependency&gt;
&gt; &gt; +    &lt;dependency&gt;
&gt; &gt; +      &lt;groupId&gt;javax.ws.rs&lt;/groupId&gt;
&gt; &gt; +      &lt;artifactId&gt;jsr311-api&lt;/artifactId&gt;
&gt; &gt; +    &lt;/dependency&gt;
&gt; &gt; +    &lt;dependency&gt;
&gt; &gt; +      &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
&gt; &gt; +      &lt;artifactId&gt;cxf-rt-frontend-jaxrs&lt;/artifactId&gt;
&gt; &gt; +      &lt;scope&gt;runtime&lt;/scope&gt;
&gt; &gt; +    &lt;/dependency&gt;
&gt; &gt;  
&gt; &gt;      &lt;!-- Test Dependencies --&gt;
&gt; &gt;      &lt;dependency&gt;
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,125 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.pipeline.valve.impl;
&gt; &gt; +
&gt; &gt; +import java.util.Collections;
&gt; &gt; +import java.util.Enumeration;
&gt; &gt; +import java.util.Map;
&gt; &gt; +
&gt; &gt; +import javax.servlet.ServletConfig;
&gt; &gt; +import javax.servlet.ServletContext;
&gt; &gt; +import javax.servlet.http.HttpServlet;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.pipeline.PipelineException;
&gt; &gt; +import org.apache.jetspeed.pipeline.valve.AbstractValve;
&gt; &gt; +import org.apache.jetspeed.pipeline.valve.ValveContext;
&gt; &gt; +import org.apache.jetspeed.request.RequestContext;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * ServletDelegatingValve
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +public class ServletDelegatingValve extends AbstractValve
&gt; &gt; +{
&gt; &gt; +    protected HttpServlet servlet;
&gt; &gt; +    protected ServletConfig config;
&gt; &gt; +
&gt; &gt; +    public ServletDelegatingValve(HttpServlet servlet, ServletConfig config)
&gt; &gt; +    {
&gt; &gt; +        this.servlet = servlet;
&gt; &gt; +        this.config = config;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    @Override
&gt; &gt; +    public void initialize() throws PipelineException
&gt; &gt; +    {
&gt; &gt; +        try
&gt; &gt; +        {
&gt; &gt; +            servlet.init(config);
&gt; &gt; +        }
&gt; &gt; +        catch (Exception e)
&gt; &gt; +        {
&gt; &gt; +            throw new PipelineException(e);
&gt; &gt; +        }
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void destroy()
&gt; &gt; +    {
&gt; &gt; +        servlet.destroy();
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @Override
&gt; &gt; +    public void invoke(RequestContext request, ValveContext context) throws PipelineException
&gt; &gt; +    {
&gt; &gt; +        try
&gt; &gt; +        {
&gt; &gt; +            servlet.service(request.getRequest(), request.getResponse());
&gt; &gt; +        }
&gt; &gt; +        catch (Exception e)
&gt; &gt; +        {
&gt; &gt; +            throw new PipelineException(e);
&gt; &gt; +        }
&gt; &gt; +        
&gt; &gt; +        // continue
&gt; &gt; +        context.invokeNext(request);
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public static class ServletConfigImpl implements ServletConfig
&gt; &gt; +    {
&gt; &gt; +        protected String servletName;
&gt; &gt; +        protected Map&lt;String, String&gt; initParams;
&gt; &gt; +        protected ServletContext servletContext;
&gt; &gt; +
&gt; &gt; +        public ServletConfigImpl(String servletName, Map&lt;String, String&gt; initParams)
&gt; &gt; +        {
&gt; &gt; +            this(servletName, initParams, null);
&gt; &gt; +        }
&gt; &gt; +
&gt; &gt; +        public ServletConfigImpl(String servletName, Map&lt;String, String&gt; initParams, ServletContext servletContext)
&gt; &gt; +        {
&gt; &gt; +            this.servletName = servletName;
&gt; &gt; +            this.initParams = initParams;
&gt; &gt; +            this.servletContext = servletContext;
&gt; &gt; +        }
&gt; &gt; +
&gt; &gt; +        public String getInitParameter(String paramName)
&gt; &gt; +        {
&gt; &gt; +            return initParams.get(paramName);
&gt; &gt; +        }
&gt; &gt; +
&gt; &gt; +        public Enumeration getInitParameterNames()
&gt; &gt; +        {
&gt; &gt; +            return Collections.enumeration(initParams.keySet());
&gt; &gt; +        }
&gt; &gt; +
&gt; &gt; +        public ServletContext getServletContext()
&gt; &gt; +        {
&gt; &gt; +            return servletContext;
&gt; &gt; +        }
&gt; &gt; +
&gt; &gt; +        public void setServletContext(ServletContext servletContext)
&gt; &gt; +        {
&gt; &gt; +            this.servletContext = servletContext;
&gt; &gt; +        }
&gt; &gt; +
&gt; &gt; +        public String getServletName()
&gt; &gt; +        {
&gt; &gt; +            return servletName;
&gt; &gt; +        }
&gt; &gt; +    }
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt; --- svn:ignore (original)
&gt; &gt; +++ svn:ignore Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -1,2 +1,2 @@
&gt; &gt; -target
&gt; &gt; +target
&gt; &gt;  surefire*.properties
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,87 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +import java.util.Locale;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.om.portlet.Description;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * DescriptionBean
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="description")
&gt; &gt; +public class DescriptionBean implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private String description;
&gt; &gt; +    private String lang;
&gt; &gt; +    private String localeString;
&gt; &gt; +
&gt; &gt; +    public DescriptionBean()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public DescriptionBean(final Description description)
&gt; &gt; +    {
&gt; &gt; +        this.description = description.getDescription();
&gt; &gt; +        lang = description.getLang();
&gt; &gt; +        
&gt; &gt; +        Locale locale = description.getLocale();
&gt; &gt; +        
&gt; &gt; +        if (locale != null)
&gt; &gt; +        {
&gt; &gt; +            localeString = locale.toString();
&gt; &gt; +        }
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getDescription()
&gt; &gt; +    {
&gt; &gt; +        return description;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setDescription(String description)
&gt; &gt; +    {
&gt; &gt; +        this.description = description;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getLang()
&gt; &gt; +    {
&gt; &gt; +        return lang;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setLang(String lang)
&gt; &gt; +    {
&gt; &gt; +        this.lang = lang;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getLocaleString()
&gt; &gt; +    {
&gt; &gt; +        return localeString;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setLocaleString(String localeString)
&gt; &gt; +    {
&gt; &gt; +        this.localeString = localeString;
&gt; &gt; +    }
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,88 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +import java.util.Locale;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.om.portlet.DisplayName;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * DisplayNameBean
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="displayName")
&gt; &gt; +public class DisplayNameBean implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private String displayName;
&gt; &gt; +    private String lang;
&gt; &gt; +    private String localeString;
&gt; &gt; +
&gt; &gt; +    public DisplayNameBean()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public DisplayNameBean(final DisplayName displayName)
&gt; &gt; +    {
&gt; &gt; +        this.displayName = displayName.getDisplayName();
&gt; &gt; +        lang = displayName.getLang();
&gt; &gt; +        
&gt; &gt; +        Locale locale = displayName.getLocale();
&gt; &gt; +        
&gt; &gt; +        if (locale != null)
&gt; &gt; +        {
&gt; &gt; +            localeString = locale.toString();
&gt; &gt; +        }
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getDisplayName()
&gt; &gt; +    {
&gt; &gt; +        return displayName;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setDisplayName(String displayName)
&gt; &gt; +    {
&gt; &gt; +        this.displayName = displayName;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getLang()
&gt; &gt; +    {
&gt; &gt; +        return lang;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setLang(String lang)
&gt; &gt; +    {
&gt; &gt; +        this.lang = lang;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getLocaleString()
&gt; &gt; +    {
&gt; &gt; +        return localeString;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setLocaleString(String localeString)
&gt; &gt; +    {
&gt; &gt; +        this.localeString = localeString;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,98 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +import java.util.ArrayList;
&gt; &gt; +import java.util.Collection;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlElement;
&gt; &gt; +import javax.xml.bind.annotation.XmlElementWrapper;
&gt; &gt; +import javax.xml.bind.annotation.XmlElements;
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.om.portlet.Description;
&gt; &gt; +import org.apache.jetspeed.om.portlet.InitParam;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * InitParamBean
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="initParam")
&gt; &gt; +public class InitParamBean implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private String paramName;
&gt; &gt; +    private String paramValue;
&gt; &gt; +    private Collection&lt;DescriptionBean&gt; descriptionBeans;
&gt; &gt; +    
&gt; &gt; +    public InitParamBean()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public InitParamBean(final InitParam initParam)
&gt; &gt; +    {
&gt; &gt; +        paramName = initParam.getParamName();
&gt; &gt; +        paramValue = initParam.getParamValue();
&gt; &gt; +        
&gt; &gt; +        ArrayList&lt;DescriptionBean&gt; descriptionBeanList = new ArrayList&lt;DescriptionBean&gt;();
&gt; &gt; +        
&gt; &gt; +        for (Description description : initParam.getDescriptions())
&gt; &gt; +        {
&gt; &gt; +            descriptionBeanList.add(new DescriptionBean(description));
&gt; &gt; +        }
&gt; &gt; +        
&gt; &gt; +        descriptionBeans = descriptionBeanList;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getParamName()
&gt; &gt; +    {
&gt; &gt; +        return paramName;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setParamName(String paramName)
&gt; &gt; +    {
&gt; &gt; +        this.paramName = paramName;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getParamValue()
&gt; &gt; +    {
&gt; &gt; +        return paramValue;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setParamValue(String paramValue)
&gt; &gt; +    {
&gt; &gt; +        this.paramValue = paramValue;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    @XmlElementWrapper(name="descriptions")
&gt; &gt; +    @XmlElements(@XmlElement(name="description"))
&gt; &gt; +    public Collection&lt;DescriptionBean&gt; getDescriptionBeans()
&gt; &gt; +    {
&gt; &gt; +        return descriptionBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setDescriptionBeans(Collection&lt;DescriptionBean&gt; descriptionBeans)
&gt; &gt; +    {
&gt; &gt; +        this.descriptionBeans = descriptionBeans;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,64 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.util.Locale;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.om.portlet.Language;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * LanguageBean
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="language")
&gt; &gt; +public class LanguageBean extends PortletInfoBean
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private String localeString;
&gt; &gt; +    
&gt; &gt; +    public LanguageBean()
&gt; &gt; +    {
&gt; &gt; +        super();
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public LanguageBean(final Language language)
&gt; &gt; +    {
&gt; &gt; +        super(language);
&gt; &gt; +        
&gt; &gt; +        Locale locale = language.getLocale();
&gt; &gt; +        
&gt; &gt; +        if (locale != null)
&gt; &gt; +        {
&gt; &gt; +            localeString = locale.toString();
&gt; &gt; +        }
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public String getLocaleString()
&gt; &gt; +    {
&gt; &gt; +        return localeString;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setLocaleString(String localeString)
&gt; &gt; +    {
&gt; &gt; +        this.localeString = localeString;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,164 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +import java.util.ArrayList;
&gt; &gt; +import java.util.Collection;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlElement;
&gt; &gt; +import javax.xml.bind.annotation.XmlElementWrapper;
&gt; &gt; +import javax.xml.bind.annotation.XmlElements;
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.om.portlet.Description;
&gt; &gt; +import org.apache.jetspeed.om.portlet.DisplayName;
&gt; &gt; +import org.apache.jetspeed.om.portlet.PortletApplication;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * PortletApplicationBean
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="application")
&gt; &gt; +public class PortletApplicationBean implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private String name;
&gt; &gt; +    private String contextPath;
&gt; &gt; +    private String defaultNamespace;
&gt; &gt; +    private int applicationType;
&gt; &gt; +    private long checksum;
&gt; &gt; +    private long revision;
&gt; &gt; +    private Collection&lt;DisplayNameBean&gt; displayNameBeans;
&gt; &gt; +    private Collection&lt;DescriptionBean&gt; descriptionBeans;
&gt; &gt; +    
&gt; &gt; +    public PortletApplicationBean()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public PortletApplicationBean(final PortletApplication portletApplication)
&gt; &gt; +    {
&gt; &gt; +        name = portletApplication.getName();
&gt; &gt; +        contextPath = portletApplication.getContextPath();
&gt; &gt; +        defaultNamespace = portletApplication.getDefaultNamespace();
&gt; &gt; +        applicationType = portletApplication.getApplicationType();
&gt; &gt; +        checksum = portletApplication.getChecksum();
&gt; &gt; +        revision = portletApplication.getRevision();
&gt; &gt; +        
&gt; &gt; +        ArrayList&lt;DisplayNameBean&gt; displayNameBeanList = new ArrayList&lt;DisplayNameBean&gt;();
&gt; &gt; +        for (DisplayName displayName : portletApplication.getDisplayNames())
&gt; &gt; +        {
&gt; &gt; +            displayNameBeanList.add(new DisplayNameBean(displayName));
&gt; &gt; +        }
&gt; &gt; +        displayNameBeans = displayNameBeanList;
&gt; &gt; +        
&gt; &gt; +        ArrayList&lt;DescriptionBean&gt; descriptionBeanList = new ArrayList&lt;DescriptionBean&gt;();
&gt; &gt; +        for (Description description : portletApplication.getDescriptions())
&gt; &gt; +        {
&gt; &gt; +            descriptionBeanList.add(new DescriptionBean(description));
&gt; &gt; +        }
&gt; &gt; +        descriptionBeans = descriptionBeanList;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getName()
&gt; &gt; +    {
&gt; &gt; +        return name;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setName(String name)
&gt; &gt; +    {
&gt; &gt; +        this.name = name;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getContextPath()
&gt; &gt; +    {
&gt; &gt; +        return contextPath;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setContextPath(String contextPath)
&gt; &gt; +    {
&gt; &gt; +        this.contextPath = contextPath;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getDefaultNamespace()
&gt; &gt; +    {
&gt; &gt; +        return defaultNamespace;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setDefaultNamespace(String defaultNamespace)
&gt; &gt; +    {
&gt; &gt; +        this.defaultNamespace = defaultNamespace;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public int getApplicationType()
&gt; &gt; +    {
&gt; &gt; +        return applicationType;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setApplicationType(int applicationType)
&gt; &gt; +    {
&gt; &gt; +        this.applicationType = applicationType;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public long getChecksum()
&gt; &gt; +    {
&gt; &gt; +        return checksum;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setChecksum(long checksum)
&gt; &gt; +    {
&gt; &gt; +        this.checksum = checksum;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public long getRevision()
&gt; &gt; +    {
&gt; &gt; +        return revision;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setRevision(long revision)
&gt; &gt; +    {
&gt; &gt; +        this.revision = revision;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElementWrapper(name="displayNames")
&gt; &gt; +    @XmlElements(@XmlElement(name="displayName"))
&gt; &gt; +    public Collection&lt;DisplayNameBean&gt; getDisplayNameBeans()
&gt; &gt; +    {
&gt; &gt; +        return displayNameBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setDisplayNameBeans(Collection&lt;DisplayNameBean&gt; displayNameBeans)
&gt; &gt; +    {
&gt; &gt; +        this.displayNameBeans = displayNameBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElementWrapper(name="descriptions")
&gt; &gt; +    @XmlElements(@XmlElement(name="description"))
&gt; &gt; +    public Collection&lt;DescriptionBean&gt; getDescriptionBeans()
&gt; &gt; +    {
&gt; &gt; +        return descriptionBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setDescriptionBeans(Collection&lt;DescriptionBean&gt; descriptionBeans)
&gt; &gt; +    {
&gt; &gt; +        this.descriptionBeans = descriptionBeans;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,53 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +import java.util.Collection;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlElement;
&gt; &gt; +import javax.xml.bind.annotation.XmlElements;
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * PortletApplicationBeans
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="applications")
&gt; &gt; +public class PortletApplicationBeans implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private Collection&lt;PortletApplicationBean&gt; portletApplicationBeans;
&gt; &gt; +    
&gt; &gt; +    public PortletApplicationBeans()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    @XmlElements(@XmlElement(name="application"))
&gt; &gt; +    public Collection&lt;PortletApplicationBean&gt; getPortletApplicationBeans()
&gt; &gt; +    {
&gt; &gt; +        return portletApplicationBeans;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public void setPortletApplicationBeans(Collection&lt;PortletApplicationBean&gt; portletApplicationBeans)
&gt; &gt; +    {
&gt; &gt; +        this.portletApplicationBeans = portletApplicationBeans;
&gt; &gt; +    }
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,171 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +import java.util.ArrayList;
&gt; &gt; +import java.util.Collection;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlElement;
&gt; &gt; +import javax.xml.bind.annotation.XmlElementWrapper;
&gt; &gt; +import javax.xml.bind.annotation.XmlElements;
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.om.portlet.Description;
&gt; &gt; +import org.apache.jetspeed.om.portlet.DisplayName;
&gt; &gt; +import org.apache.jetspeed.om.portlet.Language;
&gt; &gt; +import org.apache.jetspeed.om.portlet.PortletDefinition;
&gt; &gt; +import org.apache.jetspeed.om.portlet.Supports;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * PortletDefinitionBean
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="definition")
&gt; &gt; +public class PortletDefinitionBean implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private String applicationName;
&gt; &gt; +    private String portletName;
&gt; &gt; +    private PortletInfoBean portletInfoBean;
&gt; &gt; +    private Collection&lt;DisplayNameBean&gt; displayNameBeans;
&gt; &gt; +    private Collection&lt;DescriptionBean&gt; descriptionBeans;
&gt; &gt; +    private Collection&lt;SupportsBean&gt; supportsBeans;
&gt; &gt; +    private Collection&lt;LanguageBean&gt; languageBeans;
&gt; &gt; +    
&gt; &gt; +    public PortletDefinitionBean()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public PortletDefinitionBean(final PortletDefinition portletDefinition)
&gt; &gt; +    {
&gt; &gt; +        applicationName = portletDefinition.getApplication().getName();
&gt; &gt; +        portletName = portletDefinition.getPortletName();
&gt; &gt; +        portletInfoBean = new PortletInfoBean(portletDefinition.getPortletInfo());
&gt; &gt; +        
&gt; &gt; +        ArrayList&lt;DisplayNameBean&gt; displayNameBeanList = new ArrayList&lt;DisplayNameBean&gt;();
&gt; &gt; +        for (DisplayName displayName : portletDefinition.getDisplayNames())
&gt; &gt; +        {
&gt; &gt; +            displayNameBeanList.add(new DisplayNameBean(displayName));
&gt; &gt; +        }
&gt; &gt; +        displayNameBeans = displayNameBeanList;
&gt; &gt; +        
&gt; &gt; +        ArrayList&lt;DescriptionBean&gt; descriptionBeanList = new ArrayList&lt;DescriptionBean&gt;();
&gt; &gt; +        for (Description description : portletDefinition.getDescriptions())
&gt; &gt; +        {
&gt; &gt; +            descriptionBeanList.add(new DescriptionBean(description));
&gt; &gt; +        }
&gt; &gt; +        descriptionBeans = descriptionBeanList;
&gt; &gt; +        
&gt; &gt; +        ArrayList&lt;SupportsBean&gt; supportsBeanList = new ArrayList&lt;SupportsBean&gt;();
&gt; &gt; +        for (Supports supports : portletDefinition.getSupports())
&gt; &gt; +        {
&gt; &gt; +            supportsBeanList.add(new SupportsBean(supports));
&gt; &gt; +        }
&gt; &gt; +        supportsBeans = supportsBeanList;
&gt; &gt; +        
&gt; &gt; +        ArrayList&lt;LanguageBean&gt; languageBeanList = new ArrayList&lt;LanguageBean&gt;();
&gt; &gt; +        for (Language language : portletDefinition.getLanguages())
&gt; &gt; +        {
&gt; &gt; +            languageBeanList.add(new LanguageBean(language));
&gt; &gt; +        }
&gt; &gt; +        languageBeans = languageBeanList;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getApplicationName()
&gt; &gt; +    {
&gt; &gt; +        return applicationName;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setApplicationName(String applicationName)
&gt; &gt; +    {
&gt; &gt; +        this.applicationName = applicationName;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getPortletName()
&gt; &gt; +    {
&gt; &gt; +        return portletName;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setPortletName(String portletName)
&gt; &gt; +    {
&gt; &gt; +        this.portletName = portletName;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElement(name="portletInfo")
&gt; &gt; +    public PortletInfoBean getPortletInfoBean()
&gt; &gt; +    {
&gt; &gt; +        return portletInfoBean;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setPortletInfoBean(PortletInfoBean portletInfoBean)
&gt; &gt; +    {
&gt; &gt; +        this.portletInfoBean = portletInfoBean;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElementWrapper(name="displayNames")
&gt; &gt; +    @XmlElements(@XmlElement(name="displayName"))
&gt; &gt; +    public Collection&lt;DisplayNameBean&gt; getDisplayNameBeans()
&gt; &gt; +    {
&gt; &gt; +        return displayNameBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setDisplayNameBeans(Collection&lt;DisplayNameBean&gt; displayNameBeans)
&gt; &gt; +    {
&gt; &gt; +        this.displayNameBeans = displayNameBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElementWrapper(name="descriptions")
&gt; &gt; +    @XmlElements(@XmlElement(name="description"))
&gt; &gt; +    public Collection&lt;DescriptionBean&gt; getDescriptionBeans()
&gt; &gt; +    {
&gt; &gt; +        return descriptionBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setDescriptionBeans(Collection&lt;DescriptionBean&gt; descriptionBeans)
&gt; &gt; +    {
&gt; &gt; +        this.descriptionBeans = descriptionBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElementWrapper(name="supports")
&gt; &gt; +    @XmlElements(@XmlElement(name="support"))
&gt; &gt; +    public Collection&lt;SupportsBean&gt; getSupportsBeans()
&gt; &gt; +    {
&gt; &gt; +        return supportsBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setSupportsBeans(Collection&lt;SupportsBean&gt; supportsBeans)
&gt; &gt; +    {
&gt; &gt; +        this.supportsBeans = supportsBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElementWrapper(name="languages")
&gt; &gt; +    @XmlElements(@XmlElement(name="language"))
&gt; &gt; +    public Collection&lt;LanguageBean&gt; getLanguageBeans()
&gt; &gt; +    {
&gt; &gt; +        return languageBeans;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setLanguageBeans(Collection&lt;LanguageBean&gt; languageBeans)
&gt; &gt; +    {
&gt; &gt; +        this.languageBeans = languageBeans;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,54 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +import java.util.Collection;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlElement;
&gt; &gt; +import javax.xml.bind.annotation.XmlElements;
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * PortletDefinitionBeans
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="definitions")
&gt; &gt; +public class PortletDefinitionBeans implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private Collection&lt;PortletDefinitionBean&gt; portletDefinitionBeans;
&gt; &gt; +    
&gt; &gt; +    public PortletDefinitionBeans()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    @XmlElements(@XmlElement(name="definition"))
&gt; &gt; +    public Collection&lt;PortletDefinitionBean&gt; getPortletDefinitionBean()
&gt; &gt; +    {
&gt; &gt; +        return portletDefinitionBeans;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public void setPortletApplicationBeans(Collection&lt;PortletDefinitionBean&gt; portletDefinitionBeans)
&gt; &gt; +    {
&gt; &gt; +        this.portletDefinitionBeans = portletDefinitionBeans;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,81 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.om.portlet.PortletInfo;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * PortletInfoBean
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="portletInfo")
&gt; &gt; +public class PortletInfoBean implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private String keywords;
&gt; &gt; +    private String shortTitle;
&gt; &gt; +    private String title;
&gt; &gt; +    
&gt; &gt; +    public PortletInfoBean()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public PortletInfoBean(final PortletInfo portletInfo)
&gt; &gt; +    {
&gt; &gt; +        keywords = portletInfo.getKeywords();
&gt; &gt; +        shortTitle = portletInfo.getShortTitle();
&gt; &gt; +        title = portletInfo.getTitle();
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getKeywords()
&gt; &gt; +    {
&gt; &gt; +        return keywords;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setKeywords(String keywords)
&gt; &gt; +    {
&gt; &gt; +        this.keywords = keywords;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getShortTitle()
&gt; &gt; +    {
&gt; &gt; +        return shortTitle;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setShortTitle(String shortTitle)
&gt; &gt; +    {
&gt; &gt; +        this.shortTitle = shortTitle;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getTitle()
&gt; &gt; +    {
&gt; &gt; +        return title;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setTitle(String title)
&gt; &gt; +    {
&gt; &gt; +        this.title = title;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,89 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.beans;
&gt; &gt; +
&gt; &gt; +import java.io.Serializable;
&gt; &gt; +import java.util.Collection;
&gt; &gt; +
&gt; &gt; +import javax.xml.bind.annotation.XmlElement;
&gt; &gt; +import javax.xml.bind.annotation.XmlElementWrapper;
&gt; &gt; +import javax.xml.bind.annotation.XmlElements;
&gt; &gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; &gt; +
&gt; &gt; +import org.apache.jetspeed.om.portlet.Supports;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * SupportsBean
&gt; &gt; + * 
&gt; &gt; + * @version $Id$
&gt; &gt; + */
&gt; &gt; +@XmlRootElement(name="support")
&gt; &gt; +public class SupportsBean implements Serializable
&gt; &gt; +{
&gt; &gt; +    private static final long serialVersionUID = 1L;
&gt; &gt; +    
&gt; &gt; +    private String mimeType;
&gt; &gt; +    private Collection&lt;String&gt; portletModes;
&gt; &gt; +    private Collection&lt;String&gt; windowStates;
&gt; &gt; +
&gt; &gt; +    public SupportsBean()
&gt; &gt; +    {
&gt; &gt; +        
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    public SupportsBean(final Supports supports)
&gt; &gt; +    {
&gt; &gt; +        mimeType = supports.getMimeType();
&gt; &gt; +        portletModes = supports.getPortletModes();
&gt; &gt; +        windowStates = supports.getWindowStates();
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public String getMimeType()
&gt; &gt; +    {
&gt; &gt; +        return mimeType;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setMimeType(String mimeType)
&gt; &gt; +    {
&gt; &gt; +        this.mimeType = mimeType;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElementWrapper(name="portletModes")
&gt; &gt; +    @XmlElements(@XmlElement(name="portletMode"))
&gt; &gt; +    public Collection&lt;String&gt; getPortletModes()
&gt; &gt; +    {
&gt; &gt; +        return portletModes;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setPortletModes(Collection&lt;String&gt; portletModes)
&gt; &gt; +    {
&gt; &gt; +        this.portletModes = portletModes;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    @XmlElementWrapper(name="windowStates")
&gt; &gt; +    @XmlElements(@XmlElement(name="windowState"))
&gt; &gt; +    public Collection&lt;String&gt; getWindowStates()
&gt; &gt; +    {
&gt; &gt; +        return windowStates;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    public void setWindowStates(Collection&lt;String&gt; windowStates)
&gt; &gt; +    {
&gt; &gt; +        this.windowStates = windowStates;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,147 @@
&gt; &gt; +/*
&gt; &gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; + * this work for additional information regarding copyright ownership.
&gt; &gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; + * (the "License"); you may not use this file except in compliance with
&gt; &gt; + * the License.  You may obtain a copy of the License at
&gt; &gt; + * 
&gt; &gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; + * 
&gt; &gt; + * Unless required by applicable law or agreed to in writing, software
&gt; &gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; + * See the License for the specific language governing permissions and
&gt; &gt; + * limitations under the License.
&gt; &gt; + */
&gt; &gt; +package org.apache.jetspeed.services.rest;
&gt; &gt; +
&gt; &gt; +import java.util.ArrayList;
&gt; &gt; +import java.util.List;
&gt; &gt; +
&gt; &gt; +import javax.servlet.ServletConfig;
&gt; &gt; +import javax.servlet.ServletContext;
&gt; &gt; +import javax.servlet.http.HttpServletRequest;
&gt; &gt; +import javax.ws.rs.GET;
&gt; &gt; +import javax.ws.rs.Path;
&gt; &gt; +import javax.ws.rs.PathParam;
&gt; &gt; +import javax.ws.rs.core.Context;
&gt; &gt; +import javax.ws.rs.core.UriInfo;
&gt; &gt; +
&gt; &gt; +import org.apache.commons.lang.StringUtils;
&gt; &gt; +import org.apache.jetspeed.Jetspeed;
&gt; &gt; +import org.apache.jetspeed.components.portletregistry.PortletRegistry;
&gt; &gt; +import org.apache.jetspeed.om.portlet.PortletApplication;
&gt; &gt; +import org.apache.jetspeed.om.portlet.PortletDefinition;
&gt; &gt; +import org.apache.jetspeed.services.beans.PortletApplicationBean;
&gt; &gt; +import org.apache.jetspeed.services.beans.PortletApplicationBeans;
&gt; &gt; +import org.apache.jetspeed.services.beans.PortletDefinitionBean;
&gt; &gt; +import org.apache.jetspeed.services.beans.PortletDefinitionBeans;
&gt; &gt; +import org.slf4j.Logger;
&gt; &gt; +import org.slf4j.LoggerFactory;
&gt; &gt; +
&gt; &gt; +/**
&gt; &gt; + * PortletRegistryService
&gt; &gt; + * 
&gt; &gt; + * @vesion $Id$
&gt; &gt; + */
&gt; &gt; +
&gt; &gt; +@Path("/portletregistry/")
&gt; &gt; +public class PortletRegistryService
&gt; &gt; +{
&gt; &gt; +    
&gt; &gt; +    private static Logger log = LoggerFactory.getLogger(PortletRegistryService.class);
&gt; &gt; +    
&gt; &gt; +    @Context
&gt; &gt; +    private ServletConfig servletConfig;
&gt; &gt; +    
&gt; &gt; +    @Context
&gt; &gt; +    private ServletContext servletContext;
&gt; &gt; +    
&gt; &gt; +    @Context
&gt; &gt; +    private HttpServletRequest servletRequest;
&gt; &gt; +    
&gt; &gt; +    @Context
&gt; &gt; +    private UriInfo uriInfo;
&gt; &gt; +    
&gt; &gt; +    private PortletRegistry portletRegistry;
&gt; &gt; +    
&gt; &gt; +    public PortletRegistryService()
&gt; &gt; +    {
&gt; &gt; +        portletRegistry = (PortletRegistry) Jetspeed.getComponentManager().getComponent(PortletRegistry.class);
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    @GET
&gt; &gt; +    @Path("/application/{name}")
&gt; &gt; +    public PortletApplicationBeans getPortletApplication(@PathParam("name") String name)
&gt; &gt; +    {
&gt; &gt; +        PortletApplicationBeans paBeans = new PortletApplicationBeans();
&gt; &gt; +        List&lt;PortletApplicationBean&gt; paBeanList = new ArrayList&lt;PortletApplicationBean&gt;();
&gt; &gt; +        
&gt; &gt; +        if (StringUtils.isBlank(name))
&gt; &gt; +        {
&gt; &gt; +            for (PortletApplication pa : portletRegistry.getPortletApplications())
&gt; &gt; +            {
&gt; &gt; +                paBeanList.add(new PortletApplicationBean(pa));
&gt; &gt; +            }
&gt; &gt; +        }
&gt; &gt; +        else
&gt; &gt; +        {
&gt; &gt; +            PortletApplication pa = portletRegistry.getPortletApplication(name, true);
&gt; &gt; +            
&gt; &gt; +            if (pa != null)
&gt; &gt; +            {
&gt; &gt; +                paBeanList.add(new PortletApplicationBean(pa));
&gt; &gt; +            }
&gt; &gt; +        }
&gt; &gt; +        
&gt; &gt; +        paBeans.setPortletApplicationBeans(paBeanList);
&gt; &gt; +        return paBeans;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +    @GET
&gt; &gt; +    @Path("/definition/{uniqueName}")
&gt; &gt; +    public PortletDefinitionBeans getPortletDefinition(@PathParam("uniqueName") String uniqueName)
&gt; &gt; +    {
&gt; &gt; +        PortletDefinitionBeans pdBeans = new PortletDefinitionBeans();
&gt; &gt; +        List&lt;PortletDefinitionBean&gt; pdBeanList = new ArrayList&lt;PortletDefinitionBean&gt;();
&gt; &gt; +        
&gt; &gt; +        if (StringUtils.isBlank(uniqueName))
&gt; &gt; +        {
&gt; &gt; +            for (PortletDefinition pd : portletRegistry.getAllPortletDefinitions())
&gt; &gt; +            {
&gt; &gt; +                pdBeanList.add(new PortletDefinitionBean(pd));
&gt; &gt; +            }
&gt; &gt; +        }
&gt; &gt; +        else
&gt; &gt; +        {
&gt; &gt; +            int offset = uniqueName.indexOf("::");
&gt; &gt; +            
&gt; &gt; +            if (offset != -1)
&gt; &gt; +            {
&gt; &gt; +                PortletDefinition pd = portletRegistry.getPortletDefinitionByUniqueName(uniqueName, true);
&gt; &gt; +                
&gt; &gt; +                if (pd != null)
&gt; &gt; +                {
&gt; &gt; +                    pdBeanList.add(new PortletDefinitionBean(pd));
&gt; &gt; +                }
&gt; &gt; +            }
&gt; &gt; +            else
&gt; &gt; +            {
&gt; &gt; +                PortletApplication pa = portletRegistry.getPortletApplication(uniqueName, true);
&gt; &gt; +                
&gt; &gt; +                if (pa != null)
&gt; &gt; +                {
&gt; &gt; +                    for (PortletDefinition pd : pa.getPortlets())
&gt; &gt; +                    {
&gt; &gt; +                        pdBeanList.add(new PortletDefinitionBean(pd));
&gt; &gt; +                    }
&gt; &gt; +                }
&gt; &gt; +            }
&gt; &gt; +        }
&gt; &gt; +        
&gt; &gt; +        pdBeans.setPortletApplicationBeans(pdBeanList);
&gt; &gt; +        return pdBeans;
&gt; &gt; +    }
&gt; &gt; +    
&gt; &gt; +}
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Added: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml?rev=884670&amp;view=auto
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml (added)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -0,0 +1,55 @@
&gt; &gt; +&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&gt; &gt; +&lt;!--
&gt; &gt; +  Licensed to the Apache Software Foundation (ASF) under one or more
&gt; &gt; +  contributor license agreements.  See the NOTICE file distributed with
&gt; &gt; +  this work for additional information regarding copyright ownership.
&gt; &gt; +  The ASF licenses this file to You under the Apache License, Version 2.0
&gt; &gt; +  (the "License"); you may not use this file except in compliance with
&gt; &gt; +  the License.  You may obtain a copy of the License at
&gt; &gt; +  
&gt; &gt; +  http://www.apache.org/licenses/LICENSE-2.0
&gt; &gt; +  
&gt; &gt; +  Unless required by applicable law or agreed to in writing, software
&gt; &gt; +  distributed under the License is distributed on an "AS IS" BASIS,
&gt; &gt; +  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; &gt; +  See the License for the specific language governing permissions and
&gt; &gt; +  limitations under the License.
&gt; &gt; +--&gt;
&gt; &gt; +&lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
&gt; &gt; +  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"&gt;
&gt; &gt; +  
&gt; &gt; +  &lt;bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"&gt;
&gt; &gt; +    &lt;property name="targetClass" value="java.lang.System"/&gt;
&gt; &gt; +    &lt;property name="targetMethod" value="setProperty"/&gt;
&gt; &gt; +    &lt;property name="arguments"&gt;
&gt; &gt; +      &lt;list&gt;
&gt; &gt; +        &lt;value&gt;org.apache.cxf.Logger&lt;/value&gt;
&gt; &gt; +        &lt;value&gt;org.apache.cxf.common.logging.Log4jLogger&lt;/value&gt;
&gt; &gt; +      &lt;/list&gt;
&gt; &gt; +    &lt;/property&gt;
&gt; &gt; +  &lt;/bean&gt;
&gt; &gt; +  
&gt; &gt; +  &lt;bean id="cxfServlet" class="org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet"&gt;
&gt; &gt; +    &lt;meta key="j2:cat" value="default" /&gt;
&gt; &gt; +  &lt;/bean&gt;
&gt; &gt; +  
&gt; &gt; +  &lt;bean id="cxfServletConfig" class="org.apache.jetspeed.pipeline.valve.impl.ServletDelegatingValve$ServletConfigImpl"&gt;
&gt; &gt; +    &lt;meta key="j2:cat" value="default" /&gt;
&gt; &gt; +    &lt;constructor-arg value="CXFNonSpringJaxrsServlet" /&gt;
&gt; &gt; +    &lt;constructor-arg&gt;
&gt; &gt; +      &lt;props&gt;
&gt; &gt; +        &lt;!-- White space separted resource class names --&gt;
&gt; &gt; +        &lt;prop key="jaxrs.serviceClasses"&gt;
&gt; &gt; +          org.apache.jetspeed.services.rest.PortletRegistryService
&gt; &gt; +        &lt;/prop&gt;
&gt; &gt; +      &lt;/props&gt;
&gt; &gt; +    &lt;/constructor-arg&gt;
&gt; &gt; +    &lt;property name="servletContext"&gt;
&gt; &gt; +      &lt;bean class="org.springframework.beans.factory.config.PropertyPathFactoryBean"&gt;
&gt; &gt; +        &lt;property name="targetObject" ref="javax.servlet.ServletConfig" /&gt;
&gt; &gt; +        &lt;property name="propertyPath" value="servletContext"/&gt;
&gt; &gt; +      &lt;/bean&gt;
&gt; &gt; +    &lt;/property&gt;
&gt; &gt; +  &lt;/bean&gt;
&gt; &gt; +  
&gt; &gt; +&lt;/beans&gt;
&gt; &gt; \ No newline at end of file
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:eol-style = native
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:keywords = Id
&gt; &gt; 
&gt; &gt; Propchange: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
&gt; &gt; ------------------------------------------------------------------------------
&gt; &gt;     svn:mime-type = text/plain
&gt; &gt; 
&gt; &gt; Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml (original)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -349,7 +349,14 @@
&gt; &gt;        &lt;ref bean="RolesSecurityBehavior" /&gt;
&gt; &gt;      &lt;/constructor-arg&gt;
&gt; &gt;    &lt;/bean&gt;
&gt; &gt; -
&gt; &gt; +  
&gt; &gt; +  &lt;bean id="RestfulServicesValve" class="org.apache.jetspeed.pipeline.valve.impl.ServletDelegatingValve" 
&gt; &gt; +        init-method="initialize" destroy-method="destroy"&gt;
&gt; &gt; +    &lt;meta key="j2:cat" value="default" /&gt;
&gt; &gt; +    &lt;constructor-arg ref="cxfServlet" /&gt;
&gt; &gt; +    &lt;constructor-arg ref="cxfServletConfig" /&gt;
&gt; &gt; +  &lt;/bean&gt;
&gt; &gt; +  
&gt; &gt;    &lt;bean id="DecorationValve" class="org.apache.jetspeed.decoration.DecorationValve" init-method="initialize"&gt;
&gt; &gt;      &lt;meta key="j2:cat" value="default" /&gt;
&gt; &gt;      &lt;constructor-arg index='0'&gt;
&gt; &gt; @@ -714,6 +721,25 @@
&gt; &gt;      &lt;/constructor-arg&gt;
&gt; &gt;    &lt;/bean&gt;
&gt; &gt;  
&gt; &gt; +  &lt;bean id="restful-services-pipeline" class="org.apache.jetspeed.pipeline.JetspeedPipeline" init-method="initialize"&gt;
&gt; &gt; +    &lt;meta key="j2:cat" value="default" /&gt;
&gt; &gt; +    &lt;constructor-arg&gt;
&gt; &gt; +      &lt;value&gt;RestfulServicesPipeline&lt;/value&gt;
&gt; &gt; +    &lt;/constructor-arg&gt;
&gt; &gt; +    &lt;constructor-arg&gt;
&gt; &gt; +      &lt;list&gt;
&gt; &gt; +        &lt;ref bean="capabilityValve" /&gt;
&gt; &gt; +        &lt;ref bean="portalURLValve" /&gt;
&gt; &gt; +        &lt;ref bean="securityValve" /&gt;
&gt; &gt; +        &lt;ref bean="localizationValve" /&gt;
&gt; &gt; +        &lt;ref bean="profilerValve" /&gt;
&gt; &gt; +        &lt;ref bean="refreshUserHomepageValve" /&gt;
&gt; &gt; +        &lt;ref bean="containerValve" /&gt;
&gt; &gt; +        &lt;ref bean="RestfulServicesValve" /&gt;
&gt; &gt; +      &lt;/list&gt;
&gt; &gt; +    &lt;/constructor-arg&gt;
&gt; &gt; +  &lt;/bean&gt;
&gt; &gt; +  
&gt; &gt;    &lt;bean id="fileserver-pipeline" class="org.apache.jetspeed.pipeline.JetspeedPipeline" init-method="initialize"&gt;
&gt; &gt;      &lt;meta key="j2:cat" value="default" /&gt;
&gt; &gt;      &lt;constructor-arg&gt;
&gt; &gt; @@ -793,18 +819,21 @@
&gt; &gt;          &lt;entry key='/portal'&gt;
&gt; &gt;            &lt;value&gt;jetspeed-pipeline&lt;/value&gt;
&gt; &gt;          &lt;/entry&gt;
&gt; &gt; -        &lt;entry key='/ajaxapi'&gt;
&gt; &gt; -          &lt;value&gt;ajax-pipeline&lt;/value&gt;
&gt; &gt; -        &lt;/entry&gt;
&gt; &gt;          &lt;entry key='/login'&gt;
&gt; &gt;            &lt;value&gt;jetspeed-pipeline&lt;/value&gt;
&gt; &gt;          &lt;/entry&gt;
&gt; &gt;          &lt;entry key='/fileserver'&gt;
&gt; &gt;            &lt;value&gt;fileserver-pipeline&lt;/value&gt;
&gt; &gt;          &lt;/entry&gt;
&gt; &gt; +        &lt;entry key='/ajaxapi'&gt;
&gt; &gt; +          &lt;value&gt;ajax-pipeline&lt;/value&gt;
&gt; &gt; +        &lt;/entry&gt;
&gt; &gt;          &lt;entry key='/ajax'&gt;
&gt; &gt;            &lt;value&gt;ajax-direct-pipeline&lt;/value&gt;
&gt; &gt;          &lt;/entry&gt;
&gt; &gt; +        &lt;entry key='/services'&gt;
&gt; &gt; +          &lt;value&gt;restful-services-pipeline&lt;/value&gt;
&gt; &gt; +        &lt;/entry&gt;
&gt; &gt;          &lt;entry key='/desktop'&gt;
&gt; &gt;            &lt;value&gt;desktop-pipeline&lt;/value&gt;
&gt; &gt;          &lt;/entry&gt;&lt;!-- for jetspeed desktop, the keys /desktop, /action and /render cannot be changed --&gt;
&gt; &gt; 
&gt; &gt; Modified: portals/jetspeed-2/portal/trunk/pom.xml
&gt; &gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/pom.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; &gt; ==============================================================================
&gt; &gt; --- portals/jetspeed-2/portal/trunk/pom.xml (original)
&gt; &gt; +++ portals/jetspeed-2/portal/trunk/pom.xml Thu Nov 26 19:21:39 2009
&gt; &gt; @@ -269,6 +269,7 @@
&gt; &gt;      &lt;javax.servlet.jsp.version&gt;2.0&lt;/javax.servlet.jsp.version&gt;
&gt; &gt;      &lt;javax.sql.version&gt;2.0&lt;/javax.sql.version&gt;
&gt; &gt;      &lt;javax.transaction.version&gt;1.0.1B&lt;/javax.transaction.version&gt;
&gt; &gt; +    &lt;javax.ws.rs.version&gt;1.0&lt;/javax.ws.rs.version&gt;
&gt; &gt;      &lt;jaxen.version&gt;1.0-FCS&lt;/jaxen.version&gt;
&gt; &gt;      &lt;jaxb.version&gt;2.1&lt;/jaxb.version&gt;
&gt; &gt;      &lt;jaxb-impl.version&gt;2.1.9&lt;/jaxb-impl.version&gt;
&gt; &gt; @@ -311,6 +312,7 @@
&gt; &gt;      &lt;ccpp.version&gt;1.0&lt;/ccpp.version&gt;
&gt; &gt;      &lt;commonj.version&gt;1.1&lt;/commonj.version&gt;
&gt; &gt;      &lt;tyrex.version&gt;1.0.1&lt;/tyrex.version&gt;
&gt; &gt; +    &lt;cxf.version&gt;2.2.5&lt;/cxf.version&gt;
&gt; &gt;    &lt;/properties&gt;
&gt; &gt;  
&gt; &gt;    &lt;!-- Dependency Configuration --&gt;
&gt; &gt; @@ -974,7 +976,44 @@
&gt; &gt;          &lt;artifactId&gt;jaxb-impl&lt;/artifactId&gt;
&gt; &gt;          &lt;version&gt;${jaxb-impl.version}&lt;/version&gt;
&gt; &gt;        &lt;/dependency&gt;
&gt; &gt; -
&gt; &gt; +      
&gt; &gt; +      &lt;!-- JAX-RS --&gt;
&gt; &gt; +      &lt;dependency&gt;
&gt; &gt; +        &lt;groupId&gt;javax.ws.rs&lt;/groupId&gt;
&gt; &gt; +        &lt;artifactId&gt;jsr311-api&lt;/artifactId&gt;
&gt; &gt; +        &lt;version&gt;${javax.ws.rs.version}&lt;/version&gt;
&gt; &gt; +      &lt;/dependency&gt;
&gt; &gt; +      
&gt; &gt; +      &lt;!-- CXF --&gt;
&gt; &gt; +      &lt;dependency&gt;
&gt; &gt; +        &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
&gt; &gt; +        &lt;artifactId&gt;cxf-rt-frontend-jaxrs&lt;/artifactId&gt;
&gt; &gt; +        &lt;version&gt;${cxf.version}&lt;/version&gt;
&gt; &gt; +        &lt;scope&gt;runtime&lt;/scope&gt;
&gt; &gt; +        &lt;exclusions&gt;
&gt; &gt; +          &lt;exclusion&gt;
&gt; &gt; +            &lt;groupId&gt;commons-logging&lt;/groupId&gt;
&gt; &gt; +            &lt;artifactId&gt;commons-logging&lt;/artifactId&gt;
&gt; &gt; +          &lt;/exclusion&gt;
&gt; &gt; +          &lt;exclusion&gt;
&gt; &gt; +            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; &gt; +            &lt;artifactId&gt;spring-core&lt;/artifactId&gt;
&gt; &gt; +          &lt;/exclusion&gt;
&gt; &gt; +          &lt;exclusion&gt;
&gt; &gt; +            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; &gt; +            &lt;artifactId&gt;spring-beans&lt;/artifactId&gt;
&gt; &gt; +          &lt;/exclusion&gt;
&gt; &gt; +          &lt;exclusion&gt;
&gt; &gt; +            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; &gt; +            &lt;artifactId&gt;spring-context&lt;/artifactId&gt;
&gt; &gt; +          &lt;/exclusion&gt;
&gt; &gt; +          &lt;exclusion&gt;
&gt; &gt; +            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; &gt; +            &lt;artifactId&gt;spring-web&lt;/artifactId&gt;
&gt; &gt; +          &lt;/exclusion&gt;
&gt; &gt; +        &lt;/exclusions&gt;
&gt; &gt; +      &lt;/dependency&gt;
&gt; &gt; +      
&gt; &gt;        &lt;!-- Test --&gt;
&gt; &gt;        &lt;dependency&gt;
&gt; &gt;          &lt;groupId&gt;junit&lt;/groupId&gt;
&gt; &gt; 
&gt; &gt; 
&gt; &gt; 
&gt; &gt; ---------------------------------------------------------------------
&gt; &gt; To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
&gt; &gt; For additional commands, e-mail: jetspeed-dev-help@portals.apache.org
&gt; &gt; 
&gt; 
&gt; 
&gt; 
&gt;       
&gt; 
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
&gt; For additional commands, e-mail: jetspeed-dev-help@portals.apache.org
&gt; 


</pre>
</div>
</content>
</entry>
<entry>
<title>Re: svn commit: r884670 - in /portals/jetspeed-2/portal/trunk: ./ applications/jetspeed/src/main/resources/ applications/jetspeed/src/main/webapp/WEB-INF/ components/jetspeed-portal/ components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/val...</title>
<author><name>Woonsan Ko &lt;woon_san@yahoo.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c864467.64127.qm@web51108.mail.re2.yahoo.com%3e"/>
<id>urn:uuid:%3c864467-64127-qm@web51108-mail-re2-yahoo-com%3e</id>
<updated>2009-11-27T12:59:59Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Hi Gonzalo,

Yes, I'm implementing JAX-RS services which possibly replaces the old ajax apis. It should be regarded as a prototype until other committers get satisfied with this new one.
However, I'd like to see this new JAX-RS service used in the toolbox portlet. It would help evaluation. 
If you are interested in this, please dive into it. I will really appreciate it. :-)

By the way, many Jetspeed developers prefer json to xml, so I think we'd better use json marshaling instead of xml marshaling in toolbox portlet.
Also, I found a problem to fix. It should be more consistently mappable between xml and json marshaling. I hope to fix these today. I will update the status in the commit messages.
FYI, you can use json marshaling by adding "?_type=json" parameter as follows:

(1) GET all PAs: http://localhost:8080/jetspeed/services/portletregistry/application/%20?_type=json
(2) GET demo PA: http://localhost:8080/jetspeed/services/portletregistry/application/demo/?_type=json
(3) GET all PDs: http://localhost:8080/jetspeed/services/portletregistry/definition/%20?_type=json
(4) GET all PDs of demo PA: http://localhost:8080/jetspeed/services/portletregistry/definition/demo/?_type=json
(5) GET demo::PickANumberPortlet PD: http://localhost:8080/jetspeed/services/portletregistry/definition/demo::PickANumberPortlet/?_type=json

Apache CXF allows to change marshaling types by Accept header as well, but I think this is very handy.

Kind regards,

Woonsan



----- Original Message ----
From: Gonzalo Aguilar Delgado &lt;gaguilar@aguilardelgado.com&gt;
To: Jetspeed Developers List &lt;jetspeed-dev@portals.apache.org&gt;
Sent: Fri, November 27, 2009 1:26:28 PM
Subject: Re: svn commit: r884670 - in /portals/jetspeed-2/portal/trunk: ./ applications/jetspeed/src/main/resources/ applications/jetspeed/src/main/webapp/WEB-INF/ components/jetspeed-portal/ components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/val...

Woonsan, 

Is this a new type of service implementation? Will Jetspeed go in that
direction?

Do you want me to put this into the toolbox?

Tnx


El jue, 26-11-2009 a las 19:21 +0000, woonsan@apache.org escribió:

&gt; Author: woonsan
&gt; Date: Thu Nov 26 19:21:39 2009
&gt; New Revision: 884670
&gt; 
&gt; URL: http://svn.apache.org/viewvc?rev=884670&amp;view=rev
&gt; Log:
&gt; JS2-1087: Adding initial JAX-RS support as prototype
&gt; The following urls are testable:
&gt; 
&gt; (1) GET all PAs: http://localhost:8080/jetspeed/services/portletregistry/application/%20
&gt; (2) GET demo PA: http://localhost:8080/jetspeed/services/portletregistry/application/demo/
&gt; (3) GET all PDs: http://localhost:8080/jetspeed/services/portletregistry/definition/%20
&gt; (4) GET all PDs of demo PA: http://localhost:8080/jetspeed/services/portletregistry/definition/demo/
&gt; (5) GET demo::PickANumberPortlet PD: http://localhost:8080/jetspeed/services/portletregistry/definition/demo::PickANumberPortlet/
&gt; 
&gt; TODO: Remove '%20' in the urls to indicate '*', test with json client and integrate it with toolbox portlet.
&gt; 
&gt; Added:
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml   (with props)
&gt; Modified:
&gt;     portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml
&gt;     portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/   (props changed)
&gt;     portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml
&gt;     portals/jetspeed-2/portal/trunk/pom.xml
&gt; 
&gt; Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml (original)
&gt; +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml Thu Nov 26 19:21:39 2009
&gt; @@ -94,7 +94,15 @@
&gt;        &lt;param name="ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} %-5p [%C.%M():%L] %m%n"/&gt;
&gt;      &lt;/layout&gt;
&gt;    &lt;/appender&gt;
&gt; -
&gt; +  
&gt; +  &lt;!-- cxf appender --&gt;
&gt; +  &lt;appender name="cxf" class="org.apache.log4j.FileAppender"&gt;
&gt; +    &lt;param name="File" value="${org.apache.portals.logdir}/jetspeed-cxf.log"/&gt;
&gt; +    &lt;layout class="org.apache.log4j.PatternLayout"&gt;
&gt; +      &lt;param name="ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} %-5p [%C.%M():%L] %m%n"/&gt;
&gt; +    &lt;/layout&gt;
&gt; +  &lt;/appender&gt;
&gt; +  
&gt;    &lt;!-- ====================================================================== --&gt;
&gt;    &lt;!-- L O G G E R S                                                          --&gt;
&gt;    &lt;!-- ====================================================================== --&gt;
&gt; @@ -134,6 +142,11 @@
&gt;      &lt;appender-ref ref="ojb"/&gt;
&gt;    &lt;/category&gt;
&gt;    
&gt; +  &lt;category additivity="false" name="org.apache.cxf"&gt;
&gt; +    &lt;level value="ERROR"/&gt;
&gt; +    &lt;appender-ref ref="cxf"/&gt;
&gt; +  &lt;/category&gt;
&gt; +  
&gt;    &lt;category additivity="false" name="scheduler"&gt;
&gt;      &lt;level value="ERROR"/&gt;
&gt;      &lt;appender-ref ref="scheduler"/&gt;
&gt; 
&gt; Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml (original)
&gt; +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml Thu Nov 26 19:21:39 2009
&gt; @@ -180,6 +180,10 @@
&gt;    &lt;/servlet-mapping&gt;
&gt;    &lt;servlet-mapping&gt;
&gt;      &lt;servlet-name&gt;jetspeed&lt;/servlet-name&gt;
&gt; +    &lt;url-pattern&gt;/services/*&lt;/url-pattern&gt;
&gt; +  &lt;/servlet-mapping&gt;
&gt; +  &lt;servlet-mapping&gt;
&gt; +    &lt;servlet-name&gt;jetspeed&lt;/servlet-name&gt;
&gt;      &lt;url-pattern&gt;/desktop/*&lt;/url-pattern&gt;
&gt;    &lt;/servlet-mapping&gt;
&gt;    &lt;servlet-mapping&gt;
&gt; 
&gt; Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml (original)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml Thu Nov 26 19:21:39 2009
&gt; @@ -165,6 +165,15 @@
&gt;        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt;        &lt;artifactId&gt;spring-context-support&lt;/artifactId&gt;
&gt;      &lt;/dependency&gt;
&gt; +    &lt;dependency&gt;
&gt; +      &lt;groupId&gt;javax.ws.rs&lt;/groupId&gt;
&gt; +      &lt;artifactId&gt;jsr311-api&lt;/artifactId&gt;
&gt; +    &lt;/dependency&gt;
&gt; +    &lt;dependency&gt;
&gt; +      &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
&gt; +      &lt;artifactId&gt;cxf-rt-frontend-jaxrs&lt;/artifactId&gt;
&gt; +      &lt;scope&gt;runtime&lt;/scope&gt;
&gt; +    &lt;/dependency&gt;
&gt;  
&gt;      &lt;!-- Test Dependencies --&gt;
&gt;      &lt;dependency&gt;
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,125 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.pipeline.valve.impl;
&gt; +
&gt; +import java.util.Collections;
&gt; +import java.util.Enumeration;
&gt; +import java.util.Map;
&gt; +
&gt; +import javax.servlet.ServletConfig;
&gt; +import javax.servlet.ServletContext;
&gt; +import javax.servlet.http.HttpServlet;
&gt; +
&gt; +import org.apache.jetspeed.pipeline.PipelineException;
&gt; +import org.apache.jetspeed.pipeline.valve.AbstractValve;
&gt; +import org.apache.jetspeed.pipeline.valve.ValveContext;
&gt; +import org.apache.jetspeed.request.RequestContext;
&gt; +
&gt; +/**
&gt; + * ServletDelegatingValve
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +public class ServletDelegatingValve extends AbstractValve
&gt; +{
&gt; +    protected HttpServlet servlet;
&gt; +    protected ServletConfig config;
&gt; +
&gt; +    public ServletDelegatingValve(HttpServlet servlet, ServletConfig config)
&gt; +    {
&gt; +        this.servlet = servlet;
&gt; +        this.config = config;
&gt; +    }
&gt; +    
&gt; +    @Override
&gt; +    public void initialize() throws PipelineException
&gt; +    {
&gt; +        try
&gt; +        {
&gt; +            servlet.init(config);
&gt; +        }
&gt; +        catch (Exception e)
&gt; +        {
&gt; +            throw new PipelineException(e);
&gt; +        }
&gt; +    }
&gt; +
&gt; +    public void destroy()
&gt; +    {
&gt; +        servlet.destroy();
&gt; +    }
&gt; +
&gt; +    @Override
&gt; +    public void invoke(RequestContext request, ValveContext context) throws PipelineException
&gt; +    {
&gt; +        try
&gt; +        {
&gt; +            servlet.service(request.getRequest(), request.getResponse());
&gt; +        }
&gt; +        catch (Exception e)
&gt; +        {
&gt; +            throw new PipelineException(e);
&gt; +        }
&gt; +        
&gt; +        // continue
&gt; +        context.invokeNext(request);
&gt; +    }
&gt; +
&gt; +    public static class ServletConfigImpl implements ServletConfig
&gt; +    {
&gt; +        protected String servletName;
&gt; +        protected Map&lt;String, String&gt; initParams;
&gt; +        protected ServletContext servletContext;
&gt; +
&gt; +        public ServletConfigImpl(String servletName, Map&lt;String, String&gt; initParams)
&gt; +        {
&gt; +            this(servletName, initParams, null);
&gt; +        }
&gt; +
&gt; +        public ServletConfigImpl(String servletName, Map&lt;String, String&gt; initParams, ServletContext servletContext)
&gt; +        {
&gt; +            this.servletName = servletName;
&gt; +            this.initParams = initParams;
&gt; +            this.servletContext = servletContext;
&gt; +        }
&gt; +
&gt; +        public String getInitParameter(String paramName)
&gt; +        {
&gt; +            return initParams.get(paramName);
&gt; +        }
&gt; +
&gt; +        public Enumeration getInitParameterNames()
&gt; +        {
&gt; +            return Collections.enumeration(initParams.keySet());
&gt; +        }
&gt; +
&gt; +        public ServletContext getServletContext()
&gt; +        {
&gt; +            return servletContext;
&gt; +        }
&gt; +
&gt; +        public void setServletContext(ServletContext servletContext)
&gt; +        {
&gt; +            this.servletContext = servletContext;
&gt; +        }
&gt; +
&gt; +        public String getServletName()
&gt; +        {
&gt; +            return servletName;
&gt; +        }
&gt; +    }
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/
&gt; ------------------------------------------------------------------------------
&gt; --- svn:ignore (original)
&gt; +++ svn:ignore Thu Nov 26 19:21:39 2009
&gt; @@ -1,2 +1,2 @@
&gt; -target
&gt; +target
&gt;  surefire*.properties
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,87 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +import java.util.Locale;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +import org.apache.jetspeed.om.portlet.Description;
&gt; +
&gt; +/**
&gt; + * DescriptionBean
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="description")
&gt; +public class DescriptionBean implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private String description;
&gt; +    private String lang;
&gt; +    private String localeString;
&gt; +
&gt; +    public DescriptionBean()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    public DescriptionBean(final Description description)
&gt; +    {
&gt; +        this.description = description.getDescription();
&gt; +        lang = description.getLang();
&gt; +        
&gt; +        Locale locale = description.getLocale();
&gt; +        
&gt; +        if (locale != null)
&gt; +        {
&gt; +            localeString = locale.toString();
&gt; +        }
&gt; +    }
&gt; +
&gt; +    public String getDescription()
&gt; +    {
&gt; +        return description;
&gt; +    }
&gt; +
&gt; +    public void setDescription(String description)
&gt; +    {
&gt; +        this.description = description;
&gt; +    }
&gt; +
&gt; +    public String getLang()
&gt; +    {
&gt; +        return lang;
&gt; +    }
&gt; +
&gt; +    public void setLang(String lang)
&gt; +    {
&gt; +        this.lang = lang;
&gt; +    }
&gt; +
&gt; +    public String getLocaleString()
&gt; +    {
&gt; +        return localeString;
&gt; +    }
&gt; +
&gt; +    public void setLocaleString(String localeString)
&gt; +    {
&gt; +        this.localeString = localeString;
&gt; +    }
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,88 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +import java.util.Locale;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +import org.apache.jetspeed.om.portlet.DisplayName;
&gt; +
&gt; +/**
&gt; + * DisplayNameBean
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="displayName")
&gt; +public class DisplayNameBean implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private String displayName;
&gt; +    private String lang;
&gt; +    private String localeString;
&gt; +
&gt; +    public DisplayNameBean()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    public DisplayNameBean(final DisplayName displayName)
&gt; +    {
&gt; +        this.displayName = displayName.getDisplayName();
&gt; +        lang = displayName.getLang();
&gt; +        
&gt; +        Locale locale = displayName.getLocale();
&gt; +        
&gt; +        if (locale != null)
&gt; +        {
&gt; +            localeString = locale.toString();
&gt; +        }
&gt; +    }
&gt; +
&gt; +    public String getDisplayName()
&gt; +    {
&gt; +        return displayName;
&gt; +    }
&gt; +
&gt; +    public void setDisplayName(String displayName)
&gt; +    {
&gt; +        this.displayName = displayName;
&gt; +    }
&gt; +
&gt; +    public String getLang()
&gt; +    {
&gt; +        return lang;
&gt; +    }
&gt; +
&gt; +    public void setLang(String lang)
&gt; +    {
&gt; +        this.lang = lang;
&gt; +    }
&gt; +
&gt; +    public String getLocaleString()
&gt; +    {
&gt; +        return localeString;
&gt; +    }
&gt; +
&gt; +    public void setLocaleString(String localeString)
&gt; +    {
&gt; +        this.localeString = localeString;
&gt; +    }
&gt; +    
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,98 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +import java.util.ArrayList;
&gt; +import java.util.Collection;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlElement;
&gt; +import javax.xml.bind.annotation.XmlElementWrapper;
&gt; +import javax.xml.bind.annotation.XmlElements;
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +import org.apache.jetspeed.om.portlet.Description;
&gt; +import org.apache.jetspeed.om.portlet.InitParam;
&gt; +
&gt; +/**
&gt; + * InitParamBean
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="initParam")
&gt; +public class InitParamBean implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private String paramName;
&gt; +    private String paramValue;
&gt; +    private Collection&lt;DescriptionBean&gt; descriptionBeans;
&gt; +    
&gt; +    public InitParamBean()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    public InitParamBean(final InitParam initParam)
&gt; +    {
&gt; +        paramName = initParam.getParamName();
&gt; +        paramValue = initParam.getParamValue();
&gt; +        
&gt; +        ArrayList&lt;DescriptionBean&gt; descriptionBeanList = new ArrayList&lt;DescriptionBean&gt;();
&gt; +        
&gt; +        for (Description description : initParam.getDescriptions())
&gt; +        {
&gt; +            descriptionBeanList.add(new DescriptionBean(description));
&gt; +        }
&gt; +        
&gt; +        descriptionBeans = descriptionBeanList;
&gt; +    }
&gt; +
&gt; +    public String getParamName()
&gt; +    {
&gt; +        return paramName;
&gt; +    }
&gt; +
&gt; +    public void setParamName(String paramName)
&gt; +    {
&gt; +        this.paramName = paramName;
&gt; +    }
&gt; +
&gt; +    public String getParamValue()
&gt; +    {
&gt; +        return paramValue;
&gt; +    }
&gt; +
&gt; +    public void setParamValue(String paramValue)
&gt; +    {
&gt; +        this.paramValue = paramValue;
&gt; +    }
&gt; +    
&gt; +    @XmlElementWrapper(name="descriptions")
&gt; +    @XmlElements(@XmlElement(name="description"))
&gt; +    public Collection&lt;DescriptionBean&gt; getDescriptionBeans()
&gt; +    {
&gt; +        return descriptionBeans;
&gt; +    }
&gt; +
&gt; +    public void setDescriptionBeans(Collection&lt;DescriptionBean&gt; descriptionBeans)
&gt; +    {
&gt; +        this.descriptionBeans = descriptionBeans;
&gt; +    }
&gt; +    
&gt; +    
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,64 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.util.Locale;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +import org.apache.jetspeed.om.portlet.Language;
&gt; +
&gt; +/**
&gt; + * LanguageBean
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="language")
&gt; +public class LanguageBean extends PortletInfoBean
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private String localeString;
&gt; +    
&gt; +    public LanguageBean()
&gt; +    {
&gt; +        super();
&gt; +    }
&gt; +    
&gt; +    public LanguageBean(final Language language)
&gt; +    {
&gt; +        super(language);
&gt; +        
&gt; +        Locale locale = language.getLocale();
&gt; +        
&gt; +        if (locale != null)
&gt; +        {
&gt; +            localeString = locale.toString();
&gt; +        }
&gt; +    }
&gt; +    
&gt; +    public String getLocaleString()
&gt; +    {
&gt; +        return localeString;
&gt; +    }
&gt; +
&gt; +    public void setLocaleString(String localeString)
&gt; +    {
&gt; +        this.localeString = localeString;
&gt; +    }
&gt; +
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,164 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +import java.util.ArrayList;
&gt; +import java.util.Collection;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlElement;
&gt; +import javax.xml.bind.annotation.XmlElementWrapper;
&gt; +import javax.xml.bind.annotation.XmlElements;
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +import org.apache.jetspeed.om.portlet.Description;
&gt; +import org.apache.jetspeed.om.portlet.DisplayName;
&gt; +import org.apache.jetspeed.om.portlet.PortletApplication;
&gt; +
&gt; +/**
&gt; + * PortletApplicationBean
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="application")
&gt; +public class PortletApplicationBean implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private String name;
&gt; +    private String contextPath;
&gt; +    private String defaultNamespace;
&gt; +    private int applicationType;
&gt; +    private long checksum;
&gt; +    private long revision;
&gt; +    private Collection&lt;DisplayNameBean&gt; displayNameBeans;
&gt; +    private Collection&lt;DescriptionBean&gt; descriptionBeans;
&gt; +    
&gt; +    public PortletApplicationBean()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    public PortletApplicationBean(final PortletApplication portletApplication)
&gt; +    {
&gt; +        name = portletApplication.getName();
&gt; +        contextPath = portletApplication.getContextPath();
&gt; +        defaultNamespace = portletApplication.getDefaultNamespace();
&gt; +        applicationType = portletApplication.getApplicationType();
&gt; +        checksum = portletApplication.getChecksum();
&gt; +        revision = portletApplication.getRevision();
&gt; +        
&gt; +        ArrayList&lt;DisplayNameBean&gt; displayNameBeanList = new ArrayList&lt;DisplayNameBean&gt;();
&gt; +        for (DisplayName displayName : portletApplication.getDisplayNames())
&gt; +        {
&gt; +            displayNameBeanList.add(new DisplayNameBean(displayName));
&gt; +        }
&gt; +        displayNameBeans = displayNameBeanList;
&gt; +        
&gt; +        ArrayList&lt;DescriptionBean&gt; descriptionBeanList = new ArrayList&lt;DescriptionBean&gt;();
&gt; +        for (Description description : portletApplication.getDescriptions())
&gt; +        {
&gt; +            descriptionBeanList.add(new DescriptionBean(description));
&gt; +        }
&gt; +        descriptionBeans = descriptionBeanList;
&gt; +    }
&gt; +
&gt; +    public String getName()
&gt; +    {
&gt; +        return name;
&gt; +    }
&gt; +
&gt; +    public void setName(String name)
&gt; +    {
&gt; +        this.name = name;
&gt; +    }
&gt; +
&gt; +    public String getContextPath()
&gt; +    {
&gt; +        return contextPath;
&gt; +    }
&gt; +
&gt; +    public void setContextPath(String contextPath)
&gt; +    {
&gt; +        this.contextPath = contextPath;
&gt; +    }
&gt; +
&gt; +    public String getDefaultNamespace()
&gt; +    {
&gt; +        return defaultNamespace;
&gt; +    }
&gt; +
&gt; +    public void setDefaultNamespace(String defaultNamespace)
&gt; +    {
&gt; +        this.defaultNamespace = defaultNamespace;
&gt; +    }
&gt; +
&gt; +    public int getApplicationType()
&gt; +    {
&gt; +        return applicationType;
&gt; +    }
&gt; +
&gt; +    public void setApplicationType(int applicationType)
&gt; +    {
&gt; +        this.applicationType = applicationType;
&gt; +    }
&gt; +
&gt; +    public long getChecksum()
&gt; +    {
&gt; +        return checksum;
&gt; +    }
&gt; +
&gt; +    public void setChecksum(long checksum)
&gt; +    {
&gt; +        this.checksum = checksum;
&gt; +    }
&gt; +
&gt; +    public long getRevision()
&gt; +    {
&gt; +        return revision;
&gt; +    }
&gt; +
&gt; +    public void setRevision(long revision)
&gt; +    {
&gt; +        this.revision = revision;
&gt; +    }
&gt; +
&gt; +    @XmlElementWrapper(name="displayNames")
&gt; +    @XmlElements(@XmlElement(name="displayName"))
&gt; +    public Collection&lt;DisplayNameBean&gt; getDisplayNameBeans()
&gt; +    {
&gt; +        return displayNameBeans;
&gt; +    }
&gt; +
&gt; +    public void setDisplayNameBeans(Collection&lt;DisplayNameBean&gt; displayNameBeans)
&gt; +    {
&gt; +        this.displayNameBeans = displayNameBeans;
&gt; +    }
&gt; +
&gt; +    @XmlElementWrapper(name="descriptions")
&gt; +    @XmlElements(@XmlElement(name="description"))
&gt; +    public Collection&lt;DescriptionBean&gt; getDescriptionBeans()
&gt; +    {
&gt; +        return descriptionBeans;
&gt; +    }
&gt; +
&gt; +    public void setDescriptionBeans(Collection&lt;DescriptionBean&gt; descriptionBeans)
&gt; +    {
&gt; +        this.descriptionBeans = descriptionBeans;
&gt; +    }
&gt; +    
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,53 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +import java.util.Collection;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlElement;
&gt; +import javax.xml.bind.annotation.XmlElements;
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +/**
&gt; + * PortletApplicationBeans
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="applications")
&gt; +public class PortletApplicationBeans implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private Collection&lt;PortletApplicationBean&gt; portletApplicationBeans;
&gt; +    
&gt; +    public PortletApplicationBeans()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    @XmlElements(@XmlElement(name="application"))
&gt; +    public Collection&lt;PortletApplicationBean&gt; getPortletApplicationBeans()
&gt; +    {
&gt; +        return portletApplicationBeans;
&gt; +    }
&gt; +    
&gt; +    public void setPortletApplicationBeans(Collection&lt;PortletApplicationBean&gt; portletApplicationBeans)
&gt; +    {
&gt; +        this.portletApplicationBeans = portletApplicationBeans;
&gt; +    }
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,171 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +import java.util.ArrayList;
&gt; +import java.util.Collection;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlElement;
&gt; +import javax.xml.bind.annotation.XmlElementWrapper;
&gt; +import javax.xml.bind.annotation.XmlElements;
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +import org.apache.jetspeed.om.portlet.Description;
&gt; +import org.apache.jetspeed.om.portlet.DisplayName;
&gt; +import org.apache.jetspeed.om.portlet.Language;
&gt; +import org.apache.jetspeed.om.portlet.PortletDefinition;
&gt; +import org.apache.jetspeed.om.portlet.Supports;
&gt; +
&gt; +/**
&gt; + * PortletDefinitionBean
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="definition")
&gt; +public class PortletDefinitionBean implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private String applicationName;
&gt; +    private String portletName;
&gt; +    private PortletInfoBean portletInfoBean;
&gt; +    private Collection&lt;DisplayNameBean&gt; displayNameBeans;
&gt; +    private Collection&lt;DescriptionBean&gt; descriptionBeans;
&gt; +    private Collection&lt;SupportsBean&gt; supportsBeans;
&gt; +    private Collection&lt;LanguageBean&gt; languageBeans;
&gt; +    
&gt; +    public PortletDefinitionBean()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    public PortletDefinitionBean(final PortletDefinition portletDefinition)
&gt; +    {
&gt; +        applicationName = portletDefinition.getApplication().getName();
&gt; +        portletName = portletDefinition.getPortletName();
&gt; +        portletInfoBean = new PortletInfoBean(portletDefinition.getPortletInfo());
&gt; +        
&gt; +        ArrayList&lt;DisplayNameBean&gt; displayNameBeanList = new ArrayList&lt;DisplayNameBean&gt;();
&gt; +        for (DisplayName displayName : portletDefinition.getDisplayNames())
&gt; +        {
&gt; +            displayNameBeanList.add(new DisplayNameBean(displayName));
&gt; +        }
&gt; +        displayNameBeans = displayNameBeanList;
&gt; +        
&gt; +        ArrayList&lt;DescriptionBean&gt; descriptionBeanList = new ArrayList&lt;DescriptionBean&gt;();
&gt; +        for (Description description : portletDefinition.getDescriptions())
&gt; +        {
&gt; +            descriptionBeanList.add(new DescriptionBean(description));
&gt; +        }
&gt; +        descriptionBeans = descriptionBeanList;
&gt; +        
&gt; +        ArrayList&lt;SupportsBean&gt; supportsBeanList = new ArrayList&lt;SupportsBean&gt;();
&gt; +        for (Supports supports : portletDefinition.getSupports())
&gt; +        {
&gt; +            supportsBeanList.add(new SupportsBean(supports));
&gt; +        }
&gt; +        supportsBeans = supportsBeanList;
&gt; +        
&gt; +        ArrayList&lt;LanguageBean&gt; languageBeanList = new ArrayList&lt;LanguageBean&gt;();
&gt; +        for (Language language : portletDefinition.getLanguages())
&gt; +        {
&gt; +            languageBeanList.add(new LanguageBean(language));
&gt; +        }
&gt; +        languageBeans = languageBeanList;
&gt; +    }
&gt; +
&gt; +    public String getApplicationName()
&gt; +    {
&gt; +        return applicationName;
&gt; +    }
&gt; +
&gt; +    public void setApplicationName(String applicationName)
&gt; +    {
&gt; +        this.applicationName = applicationName;
&gt; +    }
&gt; +
&gt; +    public String getPortletName()
&gt; +    {
&gt; +        return portletName;
&gt; +    }
&gt; +
&gt; +    public void setPortletName(String portletName)
&gt; +    {
&gt; +        this.portletName = portletName;
&gt; +    }
&gt; +
&gt; +    @XmlElement(name="portletInfo")
&gt; +    public PortletInfoBean getPortletInfoBean()
&gt; +    {
&gt; +        return portletInfoBean;
&gt; +    }
&gt; +
&gt; +    public void setPortletInfoBean(PortletInfoBean portletInfoBean)
&gt; +    {
&gt; +        this.portletInfoBean = portletInfoBean;
&gt; +    }
&gt; +
&gt; +    @XmlElementWrapper(name="displayNames")
&gt; +    @XmlElements(@XmlElement(name="displayName"))
&gt; +    public Collection&lt;DisplayNameBean&gt; getDisplayNameBeans()
&gt; +    {
&gt; +        return displayNameBeans;
&gt; +    }
&gt; +
&gt; +    public void setDisplayNameBeans(Collection&lt;DisplayNameBean&gt; displayNameBeans)
&gt; +    {
&gt; +        this.displayNameBeans = displayNameBeans;
&gt; +    }
&gt; +
&gt; +    @XmlElementWrapper(name="descriptions")
&gt; +    @XmlElements(@XmlElement(name="description"))
&gt; +    public Collection&lt;DescriptionBean&gt; getDescriptionBeans()
&gt; +    {
&gt; +        return descriptionBeans;
&gt; +    }
&gt; +
&gt; +    public void setDescriptionBeans(Collection&lt;DescriptionBean&gt; descriptionBeans)
&gt; +    {
&gt; +        this.descriptionBeans = descriptionBeans;
&gt; +    }
&gt; +
&gt; +    @XmlElementWrapper(name="supports")
&gt; +    @XmlElements(@XmlElement(name="support"))
&gt; +    public Collection&lt;SupportsBean&gt; getSupportsBeans()
&gt; +    {
&gt; +        return supportsBeans;
&gt; +    }
&gt; +
&gt; +    public void setSupportsBeans(Collection&lt;SupportsBean&gt; supportsBeans)
&gt; +    {
&gt; +        this.supportsBeans = supportsBeans;
&gt; +    }
&gt; +
&gt; +    @XmlElementWrapper(name="languages")
&gt; +    @XmlElements(@XmlElement(name="language"))
&gt; +    public Collection&lt;LanguageBean&gt; getLanguageBeans()
&gt; +    {
&gt; +        return languageBeans;
&gt; +    }
&gt; +
&gt; +    public void setLanguageBeans(Collection&lt;LanguageBean&gt; languageBeans)
&gt; +    {
&gt; +        this.languageBeans = languageBeans;
&gt; +    }
&gt; +    
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,54 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +import java.util.Collection;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlElement;
&gt; +import javax.xml.bind.annotation.XmlElements;
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +/**
&gt; + * PortletDefinitionBeans
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="definitions")
&gt; +public class PortletDefinitionBeans implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private Collection&lt;PortletDefinitionBean&gt; portletDefinitionBeans;
&gt; +    
&gt; +    public PortletDefinitionBeans()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    @XmlElements(@XmlElement(name="definition"))
&gt; +    public Collection&lt;PortletDefinitionBean&gt; getPortletDefinitionBean()
&gt; +    {
&gt; +        return portletDefinitionBeans;
&gt; +    }
&gt; +    
&gt; +    public void setPortletApplicationBeans(Collection&lt;PortletDefinitionBean&gt; portletDefinitionBeans)
&gt; +    {
&gt; +        this.portletDefinitionBeans = portletDefinitionBeans;
&gt; +    }
&gt; +    
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,81 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +import org.apache.jetspeed.om.portlet.PortletInfo;
&gt; +
&gt; +/**
&gt; + * PortletInfoBean
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="portletInfo")
&gt; +public class PortletInfoBean implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private String keywords;
&gt; +    private String shortTitle;
&gt; +    private String title;
&gt; +    
&gt; +    public PortletInfoBean()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    public PortletInfoBean(final PortletInfo portletInfo)
&gt; +    {
&gt; +        keywords = portletInfo.getKeywords();
&gt; +        shortTitle = portletInfo.getShortTitle();
&gt; +        title = portletInfo.getTitle();
&gt; +    }
&gt; +
&gt; +    public String getKeywords()
&gt; +    {
&gt; +        return keywords;
&gt; +    }
&gt; +
&gt; +    public void setKeywords(String keywords)
&gt; +    {
&gt; +        this.keywords = keywords;
&gt; +    }
&gt; +
&gt; +    public String getShortTitle()
&gt; +    {
&gt; +        return shortTitle;
&gt; +    }
&gt; +
&gt; +    public void setShortTitle(String shortTitle)
&gt; +    {
&gt; +        this.shortTitle = shortTitle;
&gt; +    }
&gt; +
&gt; +    public String getTitle()
&gt; +    {
&gt; +        return title;
&gt; +    }
&gt; +
&gt; +    public void setTitle(String title)
&gt; +    {
&gt; +        this.title = title;
&gt; +    }
&gt; +
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,89 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +import java.util.Collection;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlElement;
&gt; +import javax.xml.bind.annotation.XmlElementWrapper;
&gt; +import javax.xml.bind.annotation.XmlElements;
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +import org.apache.jetspeed.om.portlet.Supports;
&gt; +
&gt; +/**
&gt; + * SupportsBean
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="support")
&gt; +public class SupportsBean implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private String mimeType;
&gt; +    private Collection&lt;String&gt; portletModes;
&gt; +    private Collection&lt;String&gt; windowStates;
&gt; +
&gt; +    public SupportsBean()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    public SupportsBean(final Supports supports)
&gt; +    {
&gt; +        mimeType = supports.getMimeType();
&gt; +        portletModes = supports.getPortletModes();
&gt; +        windowStates = supports.getWindowStates();
&gt; +    }
&gt; +
&gt; +    public String getMimeType()
&gt; +    {
&gt; +        return mimeType;
&gt; +    }
&gt; +
&gt; +    public void setMimeType(String mimeType)
&gt; +    {
&gt; +        this.mimeType = mimeType;
&gt; +    }
&gt; +
&gt; +    @XmlElementWrapper(name="portletModes")
&gt; +    @XmlElements(@XmlElement(name="portletMode"))
&gt; +    public Collection&lt;String&gt; getPortletModes()
&gt; +    {
&gt; +        return portletModes;
&gt; +    }
&gt; +
&gt; +    public void setPortletModes(Collection&lt;String&gt; portletModes)
&gt; +    {
&gt; +        this.portletModes = portletModes;
&gt; +    }
&gt; +
&gt; +    @XmlElementWrapper(name="windowStates")
&gt; +    @XmlElements(@XmlElement(name="windowState"))
&gt; +    public Collection&lt;String&gt; getWindowStates()
&gt; +    {
&gt; +        return windowStates;
&gt; +    }
&gt; +
&gt; +    public void setWindowStates(Collection&lt;String&gt; windowStates)
&gt; +    {
&gt; +        this.windowStates = windowStates;
&gt; +    }
&gt; +
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,147 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.rest;
&gt; +
&gt; +import java.util.ArrayList;
&gt; +import java.util.List;
&gt; +
&gt; +import javax.servlet.ServletConfig;
&gt; +import javax.servlet.ServletContext;
&gt; +import javax.servlet.http.HttpServletRequest;
&gt; +import javax.ws.rs.GET;
&gt; +import javax.ws.rs.Path;
&gt; +import javax.ws.rs.PathParam;
&gt; +import javax.ws.rs.core.Context;
&gt; +import javax.ws.rs.core.UriInfo;
&gt; +
&gt; +import org.apache.commons.lang.StringUtils;
&gt; +import org.apache.jetspeed.Jetspeed;
&gt; +import org.apache.jetspeed.components.portletregistry.PortletRegistry;
&gt; +import org.apache.jetspeed.om.portlet.PortletApplication;
&gt; +import org.apache.jetspeed.om.portlet.PortletDefinition;
&gt; +import org.apache.jetspeed.services.beans.PortletApplicationBean;
&gt; +import org.apache.jetspeed.services.beans.PortletApplicationBeans;
&gt; +import org.apache.jetspeed.services.beans.PortletDefinitionBean;
&gt; +import org.apache.jetspeed.services.beans.PortletDefinitionBeans;
&gt; +import org.slf4j.Logger;
&gt; +import org.slf4j.LoggerFactory;
&gt; +
&gt; +/**
&gt; + * PortletRegistryService
&gt; + * 
&gt; + * @vesion $Id$
&gt; + */
&gt; +
&gt; +@Path("/portletregistry/")
&gt; +public class PortletRegistryService
&gt; +{
&gt; +    
&gt; +    private static Logger log = LoggerFactory.getLogger(PortletRegistryService.class);
&gt; +    
&gt; +    @Context
&gt; +    private ServletConfig servletConfig;
&gt; +    
&gt; +    @Context
&gt; +    private ServletContext servletContext;
&gt; +    
&gt; +    @Context
&gt; +    private HttpServletRequest servletRequest;
&gt; +    
&gt; +    @Context
&gt; +    private UriInfo uriInfo;
&gt; +    
&gt; +    private PortletRegistry portletRegistry;
&gt; +    
&gt; +    public PortletRegistryService()
&gt; +    {
&gt; +        portletRegistry = (PortletRegistry) Jetspeed.getComponentManager().getComponent(PortletRegistry.class);
&gt; +    }
&gt; +    
&gt; +    @GET
&gt; +    @Path("/application/{name}")
&gt; +    public PortletApplicationBeans getPortletApplication(@PathParam("name") String name)
&gt; +    {
&gt; +        PortletApplicationBeans paBeans = new PortletApplicationBeans();
&gt; +        List&lt;PortletApplicationBean&gt; paBeanList = new ArrayList&lt;PortletApplicationBean&gt;();
&gt; +        
&gt; +        if (StringUtils.isBlank(name))
&gt; +        {
&gt; +            for (PortletApplication pa : portletRegistry.getPortletApplications())
&gt; +            {
&gt; +                paBeanList.add(new PortletApplicationBean(pa));
&gt; +            }
&gt; +        }
&gt; +        else
&gt; +        {
&gt; +            PortletApplication pa = portletRegistry.getPortletApplication(name, true);
&gt; +            
&gt; +            if (pa != null)
&gt; +            {
&gt; +                paBeanList.add(new PortletApplicationBean(pa));
&gt; +            }
&gt; +        }
&gt; +        
&gt; +        paBeans.setPortletApplicationBeans(paBeanList);
&gt; +        return paBeans;
&gt; +    }
&gt; +    
&gt; +    @GET
&gt; +    @Path("/definition/{uniqueName}")
&gt; +    public PortletDefinitionBeans getPortletDefinition(@PathParam("uniqueName") String uniqueName)
&gt; +    {
&gt; +        PortletDefinitionBeans pdBeans = new PortletDefinitionBeans();
&gt; +        List&lt;PortletDefinitionBean&gt; pdBeanList = new ArrayList&lt;PortletDefinitionBean&gt;();
&gt; +        
&gt; +        if (StringUtils.isBlank(uniqueName))
&gt; +        {
&gt; +            for (PortletDefinition pd : portletRegistry.getAllPortletDefinitions())
&gt; +            {
&gt; +                pdBeanList.add(new PortletDefinitionBean(pd));
&gt; +            }
&gt; +        }
&gt; +        else
&gt; +        {
&gt; +            int offset = uniqueName.indexOf("::");
&gt; +            
&gt; +            if (offset != -1)
&gt; +            {
&gt; +                PortletDefinition pd = portletRegistry.getPortletDefinitionByUniqueName(uniqueName, true);
&gt; +                
&gt; +                if (pd != null)
&gt; +                {
&gt; +                    pdBeanList.add(new PortletDefinitionBean(pd));
&gt; +                }
&gt; +            }
&gt; +            else
&gt; +            {
&gt; +                PortletApplication pa = portletRegistry.getPortletApplication(uniqueName, true);
&gt; +                
&gt; +                if (pa != null)
&gt; +                {
&gt; +                    for (PortletDefinition pd : pa.getPortlets())
&gt; +                    {
&gt; +                        pdBeanList.add(new PortletDefinitionBean(pd));
&gt; +                    }
&gt; +                }
&gt; +            }
&gt; +        }
&gt; +        
&gt; +        pdBeans.setPortletApplicationBeans(pdBeanList);
&gt; +        return pdBeans;
&gt; +    }
&gt; +    
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml (added)
&gt; +++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,55 @@
&gt; +&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&gt; +&lt;!--
&gt; +  Licensed to the Apache Software Foundation (ASF) under one or more
&gt; +  contributor license agreements.  See the NOTICE file distributed with
&gt; +  this work for additional information regarding copyright ownership.
&gt; +  The ASF licenses this file to You under the Apache License, Version 2.0
&gt; +  (the "License"); you may not use this file except in compliance with
&gt; +  the License.  You may obtain a copy of the License at
&gt; +  
&gt; +  http://www.apache.org/licenses/LICENSE-2.0
&gt; +  
&gt; +  Unless required by applicable law or agreed to in writing, software
&gt; +  distributed under the License is distributed on an "AS IS" BASIS,
&gt; +  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; +  See the License for the specific language governing permissions and
&gt; +  limitations under the License.
&gt; +--&gt;
&gt; +&lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
&gt; +  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"&gt;
&gt; +  
&gt; +  &lt;bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"&gt;
&gt; +    &lt;property name="targetClass" value="java.lang.System"/&gt;
&gt; +    &lt;property name="targetMethod" value="setProperty"/&gt;
&gt; +    &lt;property name="arguments"&gt;
&gt; +      &lt;list&gt;
&gt; +        &lt;value&gt;org.apache.cxf.Logger&lt;/value&gt;
&gt; +        &lt;value&gt;org.apache.cxf.common.logging.Log4jLogger&lt;/value&gt;
&gt; +      &lt;/list&gt;
&gt; +    &lt;/property&gt;
&gt; +  &lt;/bean&gt;
&gt; +  
&gt; +  &lt;bean id="cxfServlet" class="org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet"&gt;
&gt; +    &lt;meta key="j2:cat" value="default" /&gt;
&gt; +  &lt;/bean&gt;
&gt; +  
&gt; +  &lt;bean id="cxfServletConfig" class="org.apache.jetspeed.pipeline.valve.impl.ServletDelegatingValve$ServletConfigImpl"&gt;
&gt; +    &lt;meta key="j2:cat" value="default" /&gt;
&gt; +    &lt;constructor-arg value="CXFNonSpringJaxrsServlet" /&gt;
&gt; +    &lt;constructor-arg&gt;
&gt; +      &lt;props&gt;
&gt; +        &lt;!-- White space separted resource class names --&gt;
&gt; +        &lt;prop key="jaxrs.serviceClasses"&gt;
&gt; +          org.apache.jetspeed.services.rest.PortletRegistryService
&gt; +        &lt;/prop&gt;
&gt; +      &lt;/props&gt;
&gt; +    &lt;/constructor-arg&gt;
&gt; +    &lt;property name="servletContext"&gt;
&gt; +      &lt;bean class="org.springframework.beans.factory.config.PropertyPathFactoryBean"&gt;
&gt; +        &lt;property name="targetObject" ref="javax.servlet.ServletConfig" /&gt;
&gt; +        &lt;property name="propertyPath" value="servletContext"/&gt;
&gt; +      &lt;/bean&gt;
&gt; +    &lt;/property&gt;
&gt; +  &lt;/bean&gt;
&gt; +  
&gt; +&lt;/beans&gt;
&gt; \ No newline at end of file
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml (original)
&gt; +++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml Thu Nov 26 19:21:39 2009
&gt; @@ -349,7 +349,14 @@
&gt;        &lt;ref bean="RolesSecurityBehavior" /&gt;
&gt;      &lt;/constructor-arg&gt;
&gt;    &lt;/bean&gt;
&gt; -
&gt; +  
&gt; +  &lt;bean id="RestfulServicesValve" class="org.apache.jetspeed.pipeline.valve.impl.ServletDelegatingValve" 
&gt; +        init-method="initialize" destroy-method="destroy"&gt;
&gt; +    &lt;meta key="j2:cat" value="default" /&gt;
&gt; +    &lt;constructor-arg ref="cxfServlet" /&gt;
&gt; +    &lt;constructor-arg ref="cxfServletConfig" /&gt;
&gt; +  &lt;/bean&gt;
&gt; +  
&gt;    &lt;bean id="DecorationValve" class="org.apache.jetspeed.decoration.DecorationValve" init-method="initialize"&gt;
&gt;      &lt;meta key="j2:cat" value="default" /&gt;
&gt;      &lt;constructor-arg index='0'&gt;
&gt; @@ -714,6 +721,25 @@
&gt;      &lt;/constructor-arg&gt;
&gt;    &lt;/bean&gt;
&gt;  
&gt; +  &lt;bean id="restful-services-pipeline" class="org.apache.jetspeed.pipeline.JetspeedPipeline" init-method="initialize"&gt;
&gt; +    &lt;meta key="j2:cat" value="default" /&gt;
&gt; +    &lt;constructor-arg&gt;
&gt; +      &lt;value&gt;RestfulServicesPipeline&lt;/value&gt;
&gt; +    &lt;/constructor-arg&gt;
&gt; +    &lt;constructor-arg&gt;
&gt; +      &lt;list&gt;
&gt; +        &lt;ref bean="capabilityValve" /&gt;
&gt; +        &lt;ref bean="portalURLValve" /&gt;
&gt; +        &lt;ref bean="securityValve" /&gt;
&gt; +        &lt;ref bean="localizationValve" /&gt;
&gt; +        &lt;ref bean="profilerValve" /&gt;
&gt; +        &lt;ref bean="refreshUserHomepageValve" /&gt;
&gt; +        &lt;ref bean="containerValve" /&gt;
&gt; +        &lt;ref bean="RestfulServicesValve" /&gt;
&gt; +      &lt;/list&gt;
&gt; +    &lt;/constructor-arg&gt;
&gt; +  &lt;/bean&gt;
&gt; +  
&gt;    &lt;bean id="fileserver-pipeline" class="org.apache.jetspeed.pipeline.JetspeedPipeline" init-method="initialize"&gt;
&gt;      &lt;meta key="j2:cat" value="default" /&gt;
&gt;      &lt;constructor-arg&gt;
&gt; @@ -793,18 +819,21 @@
&gt;          &lt;entry key='/portal'&gt;
&gt;            &lt;value&gt;jetspeed-pipeline&lt;/value&gt;
&gt;          &lt;/entry&gt;
&gt; -        &lt;entry key='/ajaxapi'&gt;
&gt; -          &lt;value&gt;ajax-pipeline&lt;/value&gt;
&gt; -        &lt;/entry&gt;
&gt;          &lt;entry key='/login'&gt;
&gt;            &lt;value&gt;jetspeed-pipeline&lt;/value&gt;
&gt;          &lt;/entry&gt;
&gt;          &lt;entry key='/fileserver'&gt;
&gt;            &lt;value&gt;fileserver-pipeline&lt;/value&gt;
&gt;          &lt;/entry&gt;
&gt; +        &lt;entry key='/ajaxapi'&gt;
&gt; +          &lt;value&gt;ajax-pipeline&lt;/value&gt;
&gt; +        &lt;/entry&gt;
&gt;          &lt;entry key='/ajax'&gt;
&gt;            &lt;value&gt;ajax-direct-pipeline&lt;/value&gt;
&gt;          &lt;/entry&gt;
&gt; +        &lt;entry key='/services'&gt;
&gt; +          &lt;value&gt;restful-services-pipeline&lt;/value&gt;
&gt; +        &lt;/entry&gt;
&gt;          &lt;entry key='/desktop'&gt;
&gt;            &lt;value&gt;desktop-pipeline&lt;/value&gt;
&gt;          &lt;/entry&gt;&lt;!-- for jetspeed desktop, the keys /desktop, /action and /render cannot be changed --&gt;
&gt; 
&gt; Modified: portals/jetspeed-2/portal/trunk/pom.xml
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/pom.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/pom.xml (original)
&gt; +++ portals/jetspeed-2/portal/trunk/pom.xml Thu Nov 26 19:21:39 2009
&gt; @@ -269,6 +269,7 @@
&gt;      &lt;javax.servlet.jsp.version&gt;2.0&lt;/javax.servlet.jsp.version&gt;
&gt;      &lt;javax.sql.version&gt;2.0&lt;/javax.sql.version&gt;
&gt;      &lt;javax.transaction.version&gt;1.0.1B&lt;/javax.transaction.version&gt;
&gt; +    &lt;javax.ws.rs.version&gt;1.0&lt;/javax.ws.rs.version&gt;
&gt;      &lt;jaxen.version&gt;1.0-FCS&lt;/jaxen.version&gt;
&gt;      &lt;jaxb.version&gt;2.1&lt;/jaxb.version&gt;
&gt;      &lt;jaxb-impl.version&gt;2.1.9&lt;/jaxb-impl.version&gt;
&gt; @@ -311,6 +312,7 @@
&gt;      &lt;ccpp.version&gt;1.0&lt;/ccpp.version&gt;
&gt;      &lt;commonj.version&gt;1.1&lt;/commonj.version&gt;
&gt;      &lt;tyrex.version&gt;1.0.1&lt;/tyrex.version&gt;
&gt; +    &lt;cxf.version&gt;2.2.5&lt;/cxf.version&gt;
&gt;    &lt;/properties&gt;
&gt;  
&gt;    &lt;!-- Dependency Configuration --&gt;
&gt; @@ -974,7 +976,44 @@
&gt;          &lt;artifactId&gt;jaxb-impl&lt;/artifactId&gt;
&gt;          &lt;version&gt;${jaxb-impl.version}&lt;/version&gt;
&gt;        &lt;/dependency&gt;
&gt; -
&gt; +      
&gt; +      &lt;!-- JAX-RS --&gt;
&gt; +      &lt;dependency&gt;
&gt; +        &lt;groupId&gt;javax.ws.rs&lt;/groupId&gt;
&gt; +        &lt;artifactId&gt;jsr311-api&lt;/artifactId&gt;
&gt; +        &lt;version&gt;${javax.ws.rs.version}&lt;/version&gt;
&gt; +      &lt;/dependency&gt;
&gt; +      
&gt; +      &lt;!-- CXF --&gt;
&gt; +      &lt;dependency&gt;
&gt; +        &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
&gt; +        &lt;artifactId&gt;cxf-rt-frontend-jaxrs&lt;/artifactId&gt;
&gt; +        &lt;version&gt;${cxf.version}&lt;/version&gt;
&gt; +        &lt;scope&gt;runtime&lt;/scope&gt;
&gt; +        &lt;exclusions&gt;
&gt; +          &lt;exclusion&gt;
&gt; +            &lt;groupId&gt;commons-logging&lt;/groupId&gt;
&gt; +            &lt;artifactId&gt;commons-logging&lt;/artifactId&gt;
&gt; +          &lt;/exclusion&gt;
&gt; +          &lt;exclusion&gt;
&gt; +            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; +            &lt;artifactId&gt;spring-core&lt;/artifactId&gt;
&gt; +          &lt;/exclusion&gt;
&gt; +          &lt;exclusion&gt;
&gt; +            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; +            &lt;artifactId&gt;spring-beans&lt;/artifactId&gt;
&gt; +          &lt;/exclusion&gt;
&gt; +          &lt;exclusion&gt;
&gt; +            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; +            &lt;artifactId&gt;spring-context&lt;/artifactId&gt;
&gt; +          &lt;/exclusion&gt;
&gt; +          &lt;exclusion&gt;
&gt; +            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; +            &lt;artifactId&gt;spring-web&lt;/artifactId&gt;
&gt; +          &lt;/exclusion&gt;
&gt; +        &lt;/exclusions&gt;
&gt; +      &lt;/dependency&gt;
&gt; +      
&gt;        &lt;!-- Test --&gt;
&gt;        &lt;dependency&gt;
&gt;          &lt;groupId&gt;junit&lt;/groupId&gt;
&gt; 
&gt; 
&gt; 
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
&gt; For additional commands, e-mail: jetspeed-dev-help@portals.apache.org
&gt; 



      

---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: svn commit: r884670 - in /portals/jetspeed-2/portal/trunk: ./ applications/jetspeed/src/main/resources/ applications/jetspeed/src/main/webapp/WEB-INF/ components/jetspeed-portal/ components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/val...</title>
<author><name>Gonzalo Aguilar Delgado &lt;gaguilar@aguilardelgado.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c1259324788.11940.12.camel@azul1%3e"/>
<id>urn:uuid:%3c1259324788-11940-12-camel@azul1%3e</id>
<updated>2009-11-27T12:26:28Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Woonsan, 

Is this a new type of service implementation? Will Jetspeed go in that
direction?

Do you want me to put this into the toolbox?

Tnx


El jue, 26-11-2009 a las 19:21 +0000, woonsan@apache.org escribiÃ³:

&gt; Author: woonsan
&gt; Date: Thu Nov 26 19:21:39 2009
&gt; New Revision: 884670
&gt; 
&gt; URL: http://svn.apache.org/viewvc?rev=884670&amp;view=rev
&gt; Log:
&gt; JS2-1087: Adding initial JAX-RS support as prototype
&gt; The following urls are testable:
&gt; 
&gt; (1) GET all PAs: http://localhost:8080/jetspeed/services/portletregistry/application/%20
&gt; (2) GET demo PA: http://localhost:8080/jetspeed/services/portletregistry/application/demo/
&gt; (3) GET all PDs: http://localhost:8080/jetspeed/services/portletregistry/definition/%20
&gt; (4) GET all PDs of demo PA: http://localhost:8080/jetspeed/services/portletregistry/definition/demo/
&gt; (5) GET demo::PickANumberPortlet PD: http://localhost:8080/jetspeed/services/portletregistry/definition/demo::PickANumberPortlet/
&gt; 
&gt; TODO: Remove '%20' in the urls to indicate '*', test with json client and integrate it with toolbox portlet.
&gt; 
&gt; Added:
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java   (with props)
&gt;     portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml   (with props)
&gt; Modified:
&gt;     portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml
&gt;     portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml
&gt;     portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/   (props changed)
&gt;     portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml
&gt;     portals/jetspeed-2/portal/trunk/pom.xml
&gt; 
&gt; Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml (original)
&gt; +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml Thu Nov 26 19:21:39 2009
&gt; @@ -94,7 +94,15 @@
&gt;        &lt;param name="ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} %-5p [%C.%M():%L] %m%n"/&gt;
&gt;      &lt;/layout&gt;
&gt;    &lt;/appender&gt;
&gt; -
&gt; +  
&gt; +  &lt;!-- cxf appender --&gt;
&gt; +  &lt;appender name="cxf" class="org.apache.log4j.FileAppender"&gt;
&gt; +    &lt;param name="File" value="${org.apache.portals.logdir}/jetspeed-cxf.log"/&gt;
&gt; +    &lt;layout class="org.apache.log4j.PatternLayout"&gt;
&gt; +      &lt;param name="ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} %-5p [%C.%M():%L] %m%n"/&gt;
&gt; +    &lt;/layout&gt;
&gt; +  &lt;/appender&gt;
&gt; +  
&gt;    &lt;!-- ====================================================================== --&gt;
&gt;    &lt;!-- L O G G E R S                                                          --&gt;
&gt;    &lt;!-- ====================================================================== --&gt;
&gt; @@ -134,6 +142,11 @@
&gt;      &lt;appender-ref ref="ojb"/&gt;
&gt;    &lt;/category&gt;
&gt;    
&gt; +  &lt;category additivity="false" name="org.apache.cxf"&gt;
&gt; +    &lt;level value="ERROR"/&gt;
&gt; +    &lt;appender-ref ref="cxf"/&gt;
&gt; +  &lt;/category&gt;
&gt; +  
&gt;    &lt;category additivity="false" name="scheduler"&gt;
&gt;      &lt;level value="ERROR"/&gt;
&gt;      &lt;appender-ref ref="scheduler"/&gt;
&gt; 
&gt; Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml (original)
&gt; +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml Thu Nov 26 19:21:39 2009
&gt; @@ -180,6 +180,10 @@
&gt;    &lt;/servlet-mapping&gt;
&gt;    &lt;servlet-mapping&gt;
&gt;      &lt;servlet-name&gt;jetspeed&lt;/servlet-name&gt;
&gt; +    &lt;url-pattern&gt;/services/*&lt;/url-pattern&gt;
&gt; +  &lt;/servlet-mapping&gt;
&gt; +  &lt;servlet-mapping&gt;
&gt; +    &lt;servlet-name&gt;jetspeed&lt;/servlet-name&gt;
&gt;      &lt;url-pattern&gt;/desktop/*&lt;/url-pattern&gt;
&gt;    &lt;/servlet-mapping&gt;
&gt;    &lt;servlet-mapping&gt;
&gt; 
&gt; Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml (original)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml Thu Nov 26 19:21:39 2009
&gt; @@ -165,6 +165,15 @@
&gt;        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt;        &lt;artifactId&gt;spring-context-support&lt;/artifactId&gt;
&gt;      &lt;/dependency&gt;
&gt; +    &lt;dependency&gt;
&gt; +      &lt;groupId&gt;javax.ws.rs&lt;/groupId&gt;
&gt; +      &lt;artifactId&gt;jsr311-api&lt;/artifactId&gt;
&gt; +    &lt;/dependency&gt;
&gt; +    &lt;dependency&gt;
&gt; +      &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
&gt; +      &lt;artifactId&gt;cxf-rt-frontend-jaxrs&lt;/artifactId&gt;
&gt; +      &lt;scope&gt;runtime&lt;/scope&gt;
&gt; +    &lt;/dependency&gt;
&gt;  
&gt;      &lt;!-- Test Dependencies --&gt;
&gt;      &lt;dependency&gt;
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,125 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.pipeline.valve.impl;
&gt; +
&gt; +import java.util.Collections;
&gt; +import java.util.Enumeration;
&gt; +import java.util.Map;
&gt; +
&gt; +import javax.servlet.ServletConfig;
&gt; +import javax.servlet.ServletContext;
&gt; +import javax.servlet.http.HttpServlet;
&gt; +
&gt; +import org.apache.jetspeed.pipeline.PipelineException;
&gt; +import org.apache.jetspeed.pipeline.valve.AbstractValve;
&gt; +import org.apache.jetspeed.pipeline.valve.ValveContext;
&gt; +import org.apache.jetspeed.request.RequestContext;
&gt; +
&gt; +/**
&gt; + * ServletDelegatingValve
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +public class ServletDelegatingValve extends AbstractValve
&gt; +{
&gt; +    protected HttpServlet servlet;
&gt; +    protected ServletConfig config;
&gt; +
&gt; +    public ServletDelegatingValve(HttpServlet servlet, ServletConfig config)
&gt; +    {
&gt; +        this.servlet = servlet;
&gt; +        this.config = config;
&gt; +    }
&gt; +    
&gt; +    @Override
&gt; +    public void initialize() throws PipelineException
&gt; +    {
&gt; +        try
&gt; +        {
&gt; +            servlet.init(config);
&gt; +        }
&gt; +        catch (Exception e)
&gt; +        {
&gt; +            throw new PipelineException(e);
&gt; +        }
&gt; +    }
&gt; +
&gt; +    public void destroy()
&gt; +    {
&gt; +        servlet.destroy();
&gt; +    }
&gt; +
&gt; +    @Override
&gt; +    public void invoke(RequestContext request, ValveContext context) throws PipelineException
&gt; +    {
&gt; +        try
&gt; +        {
&gt; +            servlet.service(request.getRequest(), request.getResponse());
&gt; +        }
&gt; +        catch (Exception e)
&gt; +        {
&gt; +            throw new PipelineException(e);
&gt; +        }
&gt; +        
&gt; +        // continue
&gt; +        context.invokeNext(request);
&gt; +    }
&gt; +
&gt; +    public static class ServletConfigImpl implements ServletConfig
&gt; +    {
&gt; +        protected String servletName;
&gt; +        protected Map&lt;String, String&gt; initParams;
&gt; +        protected ServletContext servletContext;
&gt; +
&gt; +        public ServletConfigImpl(String servletName, Map&lt;String, String&gt; initParams)
&gt; +        {
&gt; +            this(servletName, initParams, null);
&gt; +        }
&gt; +
&gt; +        public ServletConfigImpl(String servletName, Map&lt;String, String&gt; initParams, ServletContext servletContext)
&gt; +        {
&gt; +            this.servletName = servletName;
&gt; +            this.initParams = initParams;
&gt; +            this.servletContext = servletContext;
&gt; +        }
&gt; +
&gt; +        public String getInitParameter(String paramName)
&gt; +        {
&gt; +            return initParams.get(paramName);
&gt; +        }
&gt; +
&gt; +        public Enumeration getInitParameterNames()
&gt; +        {
&gt; +            return Collections.enumeration(initParams.keySet());
&gt; +        }
&gt; +
&gt; +        public ServletContext getServletContext()
&gt; +        {
&gt; +            return servletContext;
&gt; +        }
&gt; +
&gt; +        public void setServletContext(ServletContext servletContext)
&gt; +        {
&gt; +            this.servletContext = servletContext;
&gt; +        }
&gt; +
&gt; +        public String getServletName()
&gt; +        {
&gt; +            return servletName;
&gt; +        }
&gt; +    }
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/
&gt; ------------------------------------------------------------------------------
&gt; --- svn:ignore (original)
&gt; +++ svn:ignore Thu Nov 26 19:21:39 2009
&gt; @@ -1,2 +1,2 @@
&gt; -target
&gt; +target
&gt;  surefire*.properties
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,87 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +import java.util.Locale;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +import org.apache.jetspeed.om.portlet.Description;
&gt; +
&gt; +/**
&gt; + * DescriptionBean
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="description")
&gt; +public class DescriptionBean implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private String description;
&gt; +    private String lang;
&gt; +    private String localeString;
&gt; +
&gt; +    public DescriptionBean()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    public DescriptionBean(final Description description)
&gt; +    {
&gt; +        this.description = description.getDescription();
&gt; +        lang = description.getLang();
&gt; +        
&gt; +        Locale locale = description.getLocale();
&gt; +        
&gt; +        if (locale != null)
&gt; +        {
&gt; +            localeString = locale.toString();
&gt; +        }
&gt; +    }
&gt; +
&gt; +    public String getDescription()
&gt; +    {
&gt; +        return description;
&gt; +    }
&gt; +
&gt; +    public void setDescription(String description)
&gt; +    {
&gt; +        this.description = description;
&gt; +    }
&gt; +
&gt; +    public String getLang()
&gt; +    {
&gt; +        return lang;
&gt; +    }
&gt; +
&gt; +    public void setLang(String lang)
&gt; +    {
&gt; +        this.lang = lang;
&gt; +    }
&gt; +
&gt; +    public String getLocaleString()
&gt; +    {
&gt; +        return localeString;
&gt; +    }
&gt; +
&gt; +    public void setLocaleString(String localeString)
&gt; +    {
&gt; +        this.localeString = localeString;
&gt; +    }
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,88 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +import java.util.Locale;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +import org.apache.jetspeed.om.portlet.DisplayName;
&gt; +
&gt; +/**
&gt; + * DisplayNameBean
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="displayName")
&gt; +public class DisplayNameBean implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private String displayName;
&gt; +    private String lang;
&gt; +    private String localeString;
&gt; +
&gt; +    public DisplayNameBean()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    public DisplayNameBean(final DisplayName displayName)
&gt; +    {
&gt; +        this.displayName = displayName.getDisplayName();
&gt; +        lang = displayName.getLang();
&gt; +        
&gt; +        Locale locale = displayName.getLocale();
&gt; +        
&gt; +        if (locale != null)
&gt; +        {
&gt; +            localeString = locale.toString();
&gt; +        }
&gt; +    }
&gt; +
&gt; +    public String getDisplayName()
&gt; +    {
&gt; +        return displayName;
&gt; +    }
&gt; +
&gt; +    public void setDisplayName(String displayName)
&gt; +    {
&gt; +        this.displayName = displayName;
&gt; +    }
&gt; +
&gt; +    public String getLang()
&gt; +    {
&gt; +        return lang;
&gt; +    }
&gt; +
&gt; +    public void setLang(String lang)
&gt; +    {
&gt; +        this.lang = lang;
&gt; +    }
&gt; +
&gt; +    public String getLocaleString()
&gt; +    {
&gt; +        return localeString;
&gt; +    }
&gt; +
&gt; +    public void setLocaleString(String localeString)
&gt; +    {
&gt; +        this.localeString = localeString;
&gt; +    }
&gt; +    
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,98 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +import java.util.ArrayList;
&gt; +import java.util.Collection;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlElement;
&gt; +import javax.xml.bind.annotation.XmlElementWrapper;
&gt; +import javax.xml.bind.annotation.XmlElements;
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +import org.apache.jetspeed.om.portlet.Description;
&gt; +import org.apache.jetspeed.om.portlet.InitParam;
&gt; +
&gt; +/**
&gt; + * InitParamBean
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="initParam")
&gt; +public class InitParamBean implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private String paramName;
&gt; +    private String paramValue;
&gt; +    private Collection&lt;DescriptionBean&gt; descriptionBeans;
&gt; +    
&gt; +    public InitParamBean()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    public InitParamBean(final InitParam initParam)
&gt; +    {
&gt; +        paramName = initParam.getParamName();
&gt; +        paramValue = initParam.getParamValue();
&gt; +        
&gt; +        ArrayList&lt;DescriptionBean&gt; descriptionBeanList = new ArrayList&lt;DescriptionBean&gt;();
&gt; +        
&gt; +        for (Description description : initParam.getDescriptions())
&gt; +        {
&gt; +            descriptionBeanList.add(new DescriptionBean(description));
&gt; +        }
&gt; +        
&gt; +        descriptionBeans = descriptionBeanList;
&gt; +    }
&gt; +
&gt; +    public String getParamName()
&gt; +    {
&gt; +        return paramName;
&gt; +    }
&gt; +
&gt; +    public void setParamName(String paramName)
&gt; +    {
&gt; +        this.paramName = paramName;
&gt; +    }
&gt; +
&gt; +    public String getParamValue()
&gt; +    {
&gt; +        return paramValue;
&gt; +    }
&gt; +
&gt; +    public void setParamValue(String paramValue)
&gt; +    {
&gt; +        this.paramValue = paramValue;
&gt; +    }
&gt; +    
&gt; +    @XmlElementWrapper(name="descriptions")
&gt; +    @XmlElements(@XmlElement(name="description"))
&gt; +    public Collection&lt;DescriptionBean&gt; getDescriptionBeans()
&gt; +    {
&gt; +        return descriptionBeans;
&gt; +    }
&gt; +
&gt; +    public void setDescriptionBeans(Collection&lt;DescriptionBean&gt; descriptionBeans)
&gt; +    {
&gt; +        this.descriptionBeans = descriptionBeans;
&gt; +    }
&gt; +    
&gt; +    
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,64 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.util.Locale;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +import org.apache.jetspeed.om.portlet.Language;
&gt; +
&gt; +/**
&gt; + * LanguageBean
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="language")
&gt; +public class LanguageBean extends PortletInfoBean
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private String localeString;
&gt; +    
&gt; +    public LanguageBean()
&gt; +    {
&gt; +        super();
&gt; +    }
&gt; +    
&gt; +    public LanguageBean(final Language language)
&gt; +    {
&gt; +        super(language);
&gt; +        
&gt; +        Locale locale = language.getLocale();
&gt; +        
&gt; +        if (locale != null)
&gt; +        {
&gt; +            localeString = locale.toString();
&gt; +        }
&gt; +    }
&gt; +    
&gt; +    public String getLocaleString()
&gt; +    {
&gt; +        return localeString;
&gt; +    }
&gt; +
&gt; +    public void setLocaleString(String localeString)
&gt; +    {
&gt; +        this.localeString = localeString;
&gt; +    }
&gt; +
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,164 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +import java.util.ArrayList;
&gt; +import java.util.Collection;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlElement;
&gt; +import javax.xml.bind.annotation.XmlElementWrapper;
&gt; +import javax.xml.bind.annotation.XmlElements;
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +import org.apache.jetspeed.om.portlet.Description;
&gt; +import org.apache.jetspeed.om.portlet.DisplayName;
&gt; +import org.apache.jetspeed.om.portlet.PortletApplication;
&gt; +
&gt; +/**
&gt; + * PortletApplicationBean
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="application")
&gt; +public class PortletApplicationBean implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private String name;
&gt; +    private String contextPath;
&gt; +    private String defaultNamespace;
&gt; +    private int applicationType;
&gt; +    private long checksum;
&gt; +    private long revision;
&gt; +    private Collection&lt;DisplayNameBean&gt; displayNameBeans;
&gt; +    private Collection&lt;DescriptionBean&gt; descriptionBeans;
&gt; +    
&gt; +    public PortletApplicationBean()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    public PortletApplicationBean(final PortletApplication portletApplication)
&gt; +    {
&gt; +        name = portletApplication.getName();
&gt; +        contextPath = portletApplication.getContextPath();
&gt; +        defaultNamespace = portletApplication.getDefaultNamespace();
&gt; +        applicationType = portletApplication.getApplicationType();
&gt; +        checksum = portletApplication.getChecksum();
&gt; +        revision = portletApplication.getRevision();
&gt; +        
&gt; +        ArrayList&lt;DisplayNameBean&gt; displayNameBeanList = new ArrayList&lt;DisplayNameBean&gt;();
&gt; +        for (DisplayName displayName : portletApplication.getDisplayNames())
&gt; +        {
&gt; +            displayNameBeanList.add(new DisplayNameBean(displayName));
&gt; +        }
&gt; +        displayNameBeans = displayNameBeanList;
&gt; +        
&gt; +        ArrayList&lt;DescriptionBean&gt; descriptionBeanList = new ArrayList&lt;DescriptionBean&gt;();
&gt; +        for (Description description : portletApplication.getDescriptions())
&gt; +        {
&gt; +            descriptionBeanList.add(new DescriptionBean(description));
&gt; +        }
&gt; +        descriptionBeans = descriptionBeanList;
&gt; +    }
&gt; +
&gt; +    public String getName()
&gt; +    {
&gt; +        return name;
&gt; +    }
&gt; +
&gt; +    public void setName(String name)
&gt; +    {
&gt; +        this.name = name;
&gt; +    }
&gt; +
&gt; +    public String getContextPath()
&gt; +    {
&gt; +        return contextPath;
&gt; +    }
&gt; +
&gt; +    public void setContextPath(String contextPath)
&gt; +    {
&gt; +        this.contextPath = contextPath;
&gt; +    }
&gt; +
&gt; +    public String getDefaultNamespace()
&gt; +    {
&gt; +        return defaultNamespace;
&gt; +    }
&gt; +
&gt; +    public void setDefaultNamespace(String defaultNamespace)
&gt; +    {
&gt; +        this.defaultNamespace = defaultNamespace;
&gt; +    }
&gt; +
&gt; +    public int getApplicationType()
&gt; +    {
&gt; +        return applicationType;
&gt; +    }
&gt; +
&gt; +    public void setApplicationType(int applicationType)
&gt; +    {
&gt; +        this.applicationType = applicationType;
&gt; +    }
&gt; +
&gt; +    public long getChecksum()
&gt; +    {
&gt; +        return checksum;
&gt; +    }
&gt; +
&gt; +    public void setChecksum(long checksum)
&gt; +    {
&gt; +        this.checksum = checksum;
&gt; +    }
&gt; +
&gt; +    public long getRevision()
&gt; +    {
&gt; +        return revision;
&gt; +    }
&gt; +
&gt; +    public void setRevision(long revision)
&gt; +    {
&gt; +        this.revision = revision;
&gt; +    }
&gt; +
&gt; +    @XmlElementWrapper(name="displayNames")
&gt; +    @XmlElements(@XmlElement(name="displayName"))
&gt; +    public Collection&lt;DisplayNameBean&gt; getDisplayNameBeans()
&gt; +    {
&gt; +        return displayNameBeans;
&gt; +    }
&gt; +
&gt; +    public void setDisplayNameBeans(Collection&lt;DisplayNameBean&gt; displayNameBeans)
&gt; +    {
&gt; +        this.displayNameBeans = displayNameBeans;
&gt; +    }
&gt; +
&gt; +    @XmlElementWrapper(name="descriptions")
&gt; +    @XmlElements(@XmlElement(name="description"))
&gt; +    public Collection&lt;DescriptionBean&gt; getDescriptionBeans()
&gt; +    {
&gt; +        return descriptionBeans;
&gt; +    }
&gt; +
&gt; +    public void setDescriptionBeans(Collection&lt;DescriptionBean&gt; descriptionBeans)
&gt; +    {
&gt; +        this.descriptionBeans = descriptionBeans;
&gt; +    }
&gt; +    
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,53 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +import java.util.Collection;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlElement;
&gt; +import javax.xml.bind.annotation.XmlElements;
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +/**
&gt; + * PortletApplicationBeans
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="applications")
&gt; +public class PortletApplicationBeans implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private Collection&lt;PortletApplicationBean&gt; portletApplicationBeans;
&gt; +    
&gt; +    public PortletApplicationBeans()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    @XmlElements(@XmlElement(name="application"))
&gt; +    public Collection&lt;PortletApplicationBean&gt; getPortletApplicationBeans()
&gt; +    {
&gt; +        return portletApplicationBeans;
&gt; +    }
&gt; +    
&gt; +    public void setPortletApplicationBeans(Collection&lt;PortletApplicationBean&gt; portletApplicationBeans)
&gt; +    {
&gt; +        this.portletApplicationBeans = portletApplicationBeans;
&gt; +    }
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,171 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +import java.util.ArrayList;
&gt; +import java.util.Collection;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlElement;
&gt; +import javax.xml.bind.annotation.XmlElementWrapper;
&gt; +import javax.xml.bind.annotation.XmlElements;
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +import org.apache.jetspeed.om.portlet.Description;
&gt; +import org.apache.jetspeed.om.portlet.DisplayName;
&gt; +import org.apache.jetspeed.om.portlet.Language;
&gt; +import org.apache.jetspeed.om.portlet.PortletDefinition;
&gt; +import org.apache.jetspeed.om.portlet.Supports;
&gt; +
&gt; +/**
&gt; + * PortletDefinitionBean
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="definition")
&gt; +public class PortletDefinitionBean implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private String applicationName;
&gt; +    private String portletName;
&gt; +    private PortletInfoBean portletInfoBean;
&gt; +    private Collection&lt;DisplayNameBean&gt; displayNameBeans;
&gt; +    private Collection&lt;DescriptionBean&gt; descriptionBeans;
&gt; +    private Collection&lt;SupportsBean&gt; supportsBeans;
&gt; +    private Collection&lt;LanguageBean&gt; languageBeans;
&gt; +    
&gt; +    public PortletDefinitionBean()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    public PortletDefinitionBean(final PortletDefinition portletDefinition)
&gt; +    {
&gt; +        applicationName = portletDefinition.getApplication().getName();
&gt; +        portletName = portletDefinition.getPortletName();
&gt; +        portletInfoBean = new PortletInfoBean(portletDefinition.getPortletInfo());
&gt; +        
&gt; +        ArrayList&lt;DisplayNameBean&gt; displayNameBeanList = new ArrayList&lt;DisplayNameBean&gt;();
&gt; +        for (DisplayName displayName : portletDefinition.getDisplayNames())
&gt; +        {
&gt; +            displayNameBeanList.add(new DisplayNameBean(displayName));
&gt; +        }
&gt; +        displayNameBeans = displayNameBeanList;
&gt; +        
&gt; +        ArrayList&lt;DescriptionBean&gt; descriptionBeanList = new ArrayList&lt;DescriptionBean&gt;();
&gt; +        for (Description description : portletDefinition.getDescriptions())
&gt; +        {
&gt; +            descriptionBeanList.add(new DescriptionBean(description));
&gt; +        }
&gt; +        descriptionBeans = descriptionBeanList;
&gt; +        
&gt; +        ArrayList&lt;SupportsBean&gt; supportsBeanList = new ArrayList&lt;SupportsBean&gt;();
&gt; +        for (Supports supports : portletDefinition.getSupports())
&gt; +        {
&gt; +            supportsBeanList.add(new SupportsBean(supports));
&gt; +        }
&gt; +        supportsBeans = supportsBeanList;
&gt; +        
&gt; +        ArrayList&lt;LanguageBean&gt; languageBeanList = new ArrayList&lt;LanguageBean&gt;();
&gt; +        for (Language language : portletDefinition.getLanguages())
&gt; +        {
&gt; +            languageBeanList.add(new LanguageBean(language));
&gt; +        }
&gt; +        languageBeans = languageBeanList;
&gt; +    }
&gt; +
&gt; +    public String getApplicationName()
&gt; +    {
&gt; +        return applicationName;
&gt; +    }
&gt; +
&gt; +    public void setApplicationName(String applicationName)
&gt; +    {
&gt; +        this.applicationName = applicationName;
&gt; +    }
&gt; +
&gt; +    public String getPortletName()
&gt; +    {
&gt; +        return portletName;
&gt; +    }
&gt; +
&gt; +    public void setPortletName(String portletName)
&gt; +    {
&gt; +        this.portletName = portletName;
&gt; +    }
&gt; +
&gt; +    @XmlElement(name="portletInfo")
&gt; +    public PortletInfoBean getPortletInfoBean()
&gt; +    {
&gt; +        return portletInfoBean;
&gt; +    }
&gt; +
&gt; +    public void setPortletInfoBean(PortletInfoBean portletInfoBean)
&gt; +    {
&gt; +        this.portletInfoBean = portletInfoBean;
&gt; +    }
&gt; +
&gt; +    @XmlElementWrapper(name="displayNames")
&gt; +    @XmlElements(@XmlElement(name="displayName"))
&gt; +    public Collection&lt;DisplayNameBean&gt; getDisplayNameBeans()
&gt; +    {
&gt; +        return displayNameBeans;
&gt; +    }
&gt; +
&gt; +    public void setDisplayNameBeans(Collection&lt;DisplayNameBean&gt; displayNameBeans)
&gt; +    {
&gt; +        this.displayNameBeans = displayNameBeans;
&gt; +    }
&gt; +
&gt; +    @XmlElementWrapper(name="descriptions")
&gt; +    @XmlElements(@XmlElement(name="description"))
&gt; +    public Collection&lt;DescriptionBean&gt; getDescriptionBeans()
&gt; +    {
&gt; +        return descriptionBeans;
&gt; +    }
&gt; +
&gt; +    public void setDescriptionBeans(Collection&lt;DescriptionBean&gt; descriptionBeans)
&gt; +    {
&gt; +        this.descriptionBeans = descriptionBeans;
&gt; +    }
&gt; +
&gt; +    @XmlElementWrapper(name="supports")
&gt; +    @XmlElements(@XmlElement(name="support"))
&gt; +    public Collection&lt;SupportsBean&gt; getSupportsBeans()
&gt; +    {
&gt; +        return supportsBeans;
&gt; +    }
&gt; +
&gt; +    public void setSupportsBeans(Collection&lt;SupportsBean&gt; supportsBeans)
&gt; +    {
&gt; +        this.supportsBeans = supportsBeans;
&gt; +    }
&gt; +
&gt; +    @XmlElementWrapper(name="languages")
&gt; +    @XmlElements(@XmlElement(name="language"))
&gt; +    public Collection&lt;LanguageBean&gt; getLanguageBeans()
&gt; +    {
&gt; +        return languageBeans;
&gt; +    }
&gt; +
&gt; +    public void setLanguageBeans(Collection&lt;LanguageBean&gt; languageBeans)
&gt; +    {
&gt; +        this.languageBeans = languageBeans;
&gt; +    }
&gt; +    
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,54 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +import java.util.Collection;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlElement;
&gt; +import javax.xml.bind.annotation.XmlElements;
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +/**
&gt; + * PortletDefinitionBeans
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="definitions")
&gt; +public class PortletDefinitionBeans implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private Collection&lt;PortletDefinitionBean&gt; portletDefinitionBeans;
&gt; +    
&gt; +    public PortletDefinitionBeans()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    @XmlElements(@XmlElement(name="definition"))
&gt; +    public Collection&lt;PortletDefinitionBean&gt; getPortletDefinitionBean()
&gt; +    {
&gt; +        return portletDefinitionBeans;
&gt; +    }
&gt; +    
&gt; +    public void setPortletApplicationBeans(Collection&lt;PortletDefinitionBean&gt; portletDefinitionBeans)
&gt; +    {
&gt; +        this.portletDefinitionBeans = portletDefinitionBeans;
&gt; +    }
&gt; +    
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,81 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +import org.apache.jetspeed.om.portlet.PortletInfo;
&gt; +
&gt; +/**
&gt; + * PortletInfoBean
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="portletInfo")
&gt; +public class PortletInfoBean implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private String keywords;
&gt; +    private String shortTitle;
&gt; +    private String title;
&gt; +    
&gt; +    public PortletInfoBean()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    public PortletInfoBean(final PortletInfo portletInfo)
&gt; +    {
&gt; +        keywords = portletInfo.getKeywords();
&gt; +        shortTitle = portletInfo.getShortTitle();
&gt; +        title = portletInfo.getTitle();
&gt; +    }
&gt; +
&gt; +    public String getKeywords()
&gt; +    {
&gt; +        return keywords;
&gt; +    }
&gt; +
&gt; +    public void setKeywords(String keywords)
&gt; +    {
&gt; +        this.keywords = keywords;
&gt; +    }
&gt; +
&gt; +    public String getShortTitle()
&gt; +    {
&gt; +        return shortTitle;
&gt; +    }
&gt; +
&gt; +    public void setShortTitle(String shortTitle)
&gt; +    {
&gt; +        this.shortTitle = shortTitle;
&gt; +    }
&gt; +
&gt; +    public String getTitle()
&gt; +    {
&gt; +        return title;
&gt; +    }
&gt; +
&gt; +    public void setTitle(String title)
&gt; +    {
&gt; +        this.title = title;
&gt; +    }
&gt; +
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,89 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.beans;
&gt; +
&gt; +import java.io.Serializable;
&gt; +import java.util.Collection;
&gt; +
&gt; +import javax.xml.bind.annotation.XmlElement;
&gt; +import javax.xml.bind.annotation.XmlElementWrapper;
&gt; +import javax.xml.bind.annotation.XmlElements;
&gt; +import javax.xml.bind.annotation.XmlRootElement;
&gt; +
&gt; +import org.apache.jetspeed.om.portlet.Supports;
&gt; +
&gt; +/**
&gt; + * SupportsBean
&gt; + * 
&gt; + * @version $Id$
&gt; + */
&gt; +@XmlRootElement(name="support")
&gt; +public class SupportsBean implements Serializable
&gt; +{
&gt; +    private static final long serialVersionUID = 1L;
&gt; +    
&gt; +    private String mimeType;
&gt; +    private Collection&lt;String&gt; portletModes;
&gt; +    private Collection&lt;String&gt; windowStates;
&gt; +
&gt; +    public SupportsBean()
&gt; +    {
&gt; +        
&gt; +    }
&gt; +    
&gt; +    public SupportsBean(final Supports supports)
&gt; +    {
&gt; +        mimeType = supports.getMimeType();
&gt; +        portletModes = supports.getPortletModes();
&gt; +        windowStates = supports.getWindowStates();
&gt; +    }
&gt; +
&gt; +    public String getMimeType()
&gt; +    {
&gt; +        return mimeType;
&gt; +    }
&gt; +
&gt; +    public void setMimeType(String mimeType)
&gt; +    {
&gt; +        this.mimeType = mimeType;
&gt; +    }
&gt; +
&gt; +    @XmlElementWrapper(name="portletModes")
&gt; +    @XmlElements(@XmlElement(name="portletMode"))
&gt; +    public Collection&lt;String&gt; getPortletModes()
&gt; +    {
&gt; +        return portletModes;
&gt; +    }
&gt; +
&gt; +    public void setPortletModes(Collection&lt;String&gt; portletModes)
&gt; +    {
&gt; +        this.portletModes = portletModes;
&gt; +    }
&gt; +
&gt; +    @XmlElementWrapper(name="windowStates")
&gt; +    @XmlElements(@XmlElement(name="windowState"))
&gt; +    public Collection&lt;String&gt; getWindowStates()
&gt; +    {
&gt; +        return windowStates;
&gt; +    }
&gt; +
&gt; +    public void setWindowStates(Collection&lt;String&gt; windowStates)
&gt; +    {
&gt; +        this.windowStates = windowStates;
&gt; +    }
&gt; +
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java (added)
&gt; +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,147 @@
&gt; +/*
&gt; + * Licensed to the Apache Software Foundation (ASF) under one or more
&gt; + * contributor license agreements.  See the NOTICE file distributed with
&gt; + * this work for additional information regarding copyright ownership.
&gt; + * The ASF licenses this file to You under the Apache License, Version 2.0
&gt; + * (the "License"); you may not use this file except in compliance with
&gt; + * the License.  You may obtain a copy of the License at
&gt; + * 
&gt; + *      http://www.apache.org/licenses/LICENSE-2.0
&gt; + * 
&gt; + * Unless required by applicable law or agreed to in writing, software
&gt; + * distributed under the License is distributed on an "AS IS" BASIS,
&gt; + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; + * See the License for the specific language governing permissions and
&gt; + * limitations under the License.
&gt; + */
&gt; +package org.apache.jetspeed.services.rest;
&gt; +
&gt; +import java.util.ArrayList;
&gt; +import java.util.List;
&gt; +
&gt; +import javax.servlet.ServletConfig;
&gt; +import javax.servlet.ServletContext;
&gt; +import javax.servlet.http.HttpServletRequest;
&gt; +import javax.ws.rs.GET;
&gt; +import javax.ws.rs.Path;
&gt; +import javax.ws.rs.PathParam;
&gt; +import javax.ws.rs.core.Context;
&gt; +import javax.ws.rs.core.UriInfo;
&gt; +
&gt; +import org.apache.commons.lang.StringUtils;
&gt; +import org.apache.jetspeed.Jetspeed;
&gt; +import org.apache.jetspeed.components.portletregistry.PortletRegistry;
&gt; +import org.apache.jetspeed.om.portlet.PortletApplication;
&gt; +import org.apache.jetspeed.om.portlet.PortletDefinition;
&gt; +import org.apache.jetspeed.services.beans.PortletApplicationBean;
&gt; +import org.apache.jetspeed.services.beans.PortletApplicationBeans;
&gt; +import org.apache.jetspeed.services.beans.PortletDefinitionBean;
&gt; +import org.apache.jetspeed.services.beans.PortletDefinitionBeans;
&gt; +import org.slf4j.Logger;
&gt; +import org.slf4j.LoggerFactory;
&gt; +
&gt; +/**
&gt; + * PortletRegistryService
&gt; + * 
&gt; + * @vesion $Id$
&gt; + */
&gt; +
&gt; +@Path("/portletregistry/")
&gt; +public class PortletRegistryService
&gt; +{
&gt; +    
&gt; +    private static Logger log = LoggerFactory.getLogger(PortletRegistryService.class);
&gt; +    
&gt; +    @Context
&gt; +    private ServletConfig servletConfig;
&gt; +    
&gt; +    @Context
&gt; +    private ServletContext servletContext;
&gt; +    
&gt; +    @Context
&gt; +    private HttpServletRequest servletRequest;
&gt; +    
&gt; +    @Context
&gt; +    private UriInfo uriInfo;
&gt; +    
&gt; +    private PortletRegistry portletRegistry;
&gt; +    
&gt; +    public PortletRegistryService()
&gt; +    {
&gt; +        portletRegistry = (PortletRegistry) Jetspeed.getComponentManager().getComponent(PortletRegistry.class);
&gt; +    }
&gt; +    
&gt; +    @GET
&gt; +    @Path("/application/{name}")
&gt; +    public PortletApplicationBeans getPortletApplication(@PathParam("name") String name)
&gt; +    {
&gt; +        PortletApplicationBeans paBeans = new PortletApplicationBeans();
&gt; +        List&lt;PortletApplicationBean&gt; paBeanList = new ArrayList&lt;PortletApplicationBean&gt;();
&gt; +        
&gt; +        if (StringUtils.isBlank(name))
&gt; +        {
&gt; +            for (PortletApplication pa : portletRegistry.getPortletApplications())
&gt; +            {
&gt; +                paBeanList.add(new PortletApplicationBean(pa));
&gt; +            }
&gt; +        }
&gt; +        else
&gt; +        {
&gt; +            PortletApplication pa = portletRegistry.getPortletApplication(name, true);
&gt; +            
&gt; +            if (pa != null)
&gt; +            {
&gt; +                paBeanList.add(new PortletApplicationBean(pa));
&gt; +            }
&gt; +        }
&gt; +        
&gt; +        paBeans.setPortletApplicationBeans(paBeanList);
&gt; +        return paBeans;
&gt; +    }
&gt; +    
&gt; +    @GET
&gt; +    @Path("/definition/{uniqueName}")
&gt; +    public PortletDefinitionBeans getPortletDefinition(@PathParam("uniqueName") String uniqueName)
&gt; +    {
&gt; +        PortletDefinitionBeans pdBeans = new PortletDefinitionBeans();
&gt; +        List&lt;PortletDefinitionBean&gt; pdBeanList = new ArrayList&lt;PortletDefinitionBean&gt;();
&gt; +        
&gt; +        if (StringUtils.isBlank(uniqueName))
&gt; +        {
&gt; +            for (PortletDefinition pd : portletRegistry.getAllPortletDefinitions())
&gt; +            {
&gt; +                pdBeanList.add(new PortletDefinitionBean(pd));
&gt; +            }
&gt; +        }
&gt; +        else
&gt; +        {
&gt; +            int offset = uniqueName.indexOf("::");
&gt; +            
&gt; +            if (offset != -1)
&gt; +            {
&gt; +                PortletDefinition pd = portletRegistry.getPortletDefinitionByUniqueName(uniqueName, true);
&gt; +                
&gt; +                if (pd != null)
&gt; +                {
&gt; +                    pdBeanList.add(new PortletDefinitionBean(pd));
&gt; +                }
&gt; +            }
&gt; +            else
&gt; +            {
&gt; +                PortletApplication pa = portletRegistry.getPortletApplication(uniqueName, true);
&gt; +                
&gt; +                if (pa != null)
&gt; +                {
&gt; +                    for (PortletDefinition pd : pa.getPortlets())
&gt; +                    {
&gt; +                        pdBeanList.add(new PortletDefinitionBean(pd));
&gt; +                    }
&gt; +                }
&gt; +            }
&gt; +        }
&gt; +        
&gt; +        pdBeans.setPortletApplicationBeans(pdBeanList);
&gt; +        return pdBeans;
&gt; +    }
&gt; +    
&gt; +}
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Added: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml?rev=884670&amp;view=auto
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml (added)
&gt; +++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml Thu Nov 26 19:21:39 2009
&gt; @@ -0,0 +1,55 @@
&gt; +&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&gt; +&lt;!--
&gt; +  Licensed to the Apache Software Foundation (ASF) under one or more
&gt; +  contributor license agreements.  See the NOTICE file distributed with
&gt; +  this work for additional information regarding copyright ownership.
&gt; +  The ASF licenses this file to You under the Apache License, Version 2.0
&gt; +  (the "License"); you may not use this file except in compliance with
&gt; +  the License.  You may obtain a copy of the License at
&gt; +  
&gt; +  http://www.apache.org/licenses/LICENSE-2.0
&gt; +  
&gt; +  Unless required by applicable law or agreed to in writing, software
&gt; +  distributed under the License is distributed on an "AS IS" BASIS,
&gt; +  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&gt; +  See the License for the specific language governing permissions and
&gt; +  limitations under the License.
&gt; +--&gt;
&gt; +&lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
&gt; +  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"&gt;
&gt; +  
&gt; +  &lt;bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"&gt;
&gt; +    &lt;property name="targetClass" value="java.lang.System"/&gt;
&gt; +    &lt;property name="targetMethod" value="setProperty"/&gt;
&gt; +    &lt;property name="arguments"&gt;
&gt; +      &lt;list&gt;
&gt; +        &lt;value&gt;org.apache.cxf.Logger&lt;/value&gt;
&gt; +        &lt;value&gt;org.apache.cxf.common.logging.Log4jLogger&lt;/value&gt;
&gt; +      &lt;/list&gt;
&gt; +    &lt;/property&gt;
&gt; +  &lt;/bean&gt;
&gt; +  
&gt; +  &lt;bean id="cxfServlet" class="org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet"&gt;
&gt; +    &lt;meta key="j2:cat" value="default" /&gt;
&gt; +  &lt;/bean&gt;
&gt; +  
&gt; +  &lt;bean id="cxfServletConfig" class="org.apache.jetspeed.pipeline.valve.impl.ServletDelegatingValve$ServletConfigImpl"&gt;
&gt; +    &lt;meta key="j2:cat" value="default" /&gt;
&gt; +    &lt;constructor-arg value="CXFNonSpringJaxrsServlet" /&gt;
&gt; +    &lt;constructor-arg&gt;
&gt; +      &lt;props&gt;
&gt; +        &lt;!-- White space separted resource class names --&gt;
&gt; +        &lt;prop key="jaxrs.serviceClasses"&gt;
&gt; +          org.apache.jetspeed.services.rest.PortletRegistryService
&gt; +        &lt;/prop&gt;
&gt; +      &lt;/props&gt;
&gt; +    &lt;/constructor-arg&gt;
&gt; +    &lt;property name="servletContext"&gt;
&gt; +      &lt;bean class="org.springframework.beans.factory.config.PropertyPathFactoryBean"&gt;
&gt; +        &lt;property name="targetObject" ref="javax.servlet.ServletConfig" /&gt;
&gt; +        &lt;property name="propertyPath" value="servletContext"/&gt;
&gt; +      &lt;/bean&gt;
&gt; +    &lt;/property&gt;
&gt; +  &lt;/bean&gt;
&gt; +  
&gt; +&lt;/beans&gt;
&gt; \ No newline at end of file
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
&gt; ------------------------------------------------------------------------------
&gt;     svn:eol-style = native
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
&gt; ------------------------------------------------------------------------------
&gt;     svn:keywords = Id
&gt; 
&gt; Propchange: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
&gt; ------------------------------------------------------------------------------
&gt;     svn:mime-type = text/plain
&gt; 
&gt; Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml (original)
&gt; +++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml Thu Nov 26 19:21:39 2009
&gt; @@ -349,7 +349,14 @@
&gt;        &lt;ref bean="RolesSecurityBehavior" /&gt;
&gt;      &lt;/constructor-arg&gt;
&gt;    &lt;/bean&gt;
&gt; -
&gt; +  
&gt; +  &lt;bean id="RestfulServicesValve" class="org.apache.jetspeed.pipeline.valve.impl.ServletDelegatingValve" 
&gt; +        init-method="initialize" destroy-method="destroy"&gt;
&gt; +    &lt;meta key="j2:cat" value="default" /&gt;
&gt; +    &lt;constructor-arg ref="cxfServlet" /&gt;
&gt; +    &lt;constructor-arg ref="cxfServletConfig" /&gt;
&gt; +  &lt;/bean&gt;
&gt; +  
&gt;    &lt;bean id="DecorationValve" class="org.apache.jetspeed.decoration.DecorationValve" init-method="initialize"&gt;
&gt;      &lt;meta key="j2:cat" value="default" /&gt;
&gt;      &lt;constructor-arg index='0'&gt;
&gt; @@ -714,6 +721,25 @@
&gt;      &lt;/constructor-arg&gt;
&gt;    &lt;/bean&gt;
&gt;  
&gt; +  &lt;bean id="restful-services-pipeline" class="org.apache.jetspeed.pipeline.JetspeedPipeline" init-method="initialize"&gt;
&gt; +    &lt;meta key="j2:cat" value="default" /&gt;
&gt; +    &lt;constructor-arg&gt;
&gt; +      &lt;value&gt;RestfulServicesPipeline&lt;/value&gt;
&gt; +    &lt;/constructor-arg&gt;
&gt; +    &lt;constructor-arg&gt;
&gt; +      &lt;list&gt;
&gt; +        &lt;ref bean="capabilityValve" /&gt;
&gt; +        &lt;ref bean="portalURLValve" /&gt;
&gt; +        &lt;ref bean="securityValve" /&gt;
&gt; +        &lt;ref bean="localizationValve" /&gt;
&gt; +        &lt;ref bean="profilerValve" /&gt;
&gt; +        &lt;ref bean="refreshUserHomepageValve" /&gt;
&gt; +        &lt;ref bean="containerValve" /&gt;
&gt; +        &lt;ref bean="RestfulServicesValve" /&gt;
&gt; +      &lt;/list&gt;
&gt; +    &lt;/constructor-arg&gt;
&gt; +  &lt;/bean&gt;
&gt; +  
&gt;    &lt;bean id="fileserver-pipeline" class="org.apache.jetspeed.pipeline.JetspeedPipeline" init-method="initialize"&gt;
&gt;      &lt;meta key="j2:cat" value="default" /&gt;
&gt;      &lt;constructor-arg&gt;
&gt; @@ -793,18 +819,21 @@
&gt;          &lt;entry key='/portal'&gt;
&gt;            &lt;value&gt;jetspeed-pipeline&lt;/value&gt;
&gt;          &lt;/entry&gt;
&gt; -        &lt;entry key='/ajaxapi'&gt;
&gt; -          &lt;value&gt;ajax-pipeline&lt;/value&gt;
&gt; -        &lt;/entry&gt;
&gt;          &lt;entry key='/login'&gt;
&gt;            &lt;value&gt;jetspeed-pipeline&lt;/value&gt;
&gt;          &lt;/entry&gt;
&gt;          &lt;entry key='/fileserver'&gt;
&gt;            &lt;value&gt;fileserver-pipeline&lt;/value&gt;
&gt;          &lt;/entry&gt;
&gt; +        &lt;entry key='/ajaxapi'&gt;
&gt; +          &lt;value&gt;ajax-pipeline&lt;/value&gt;
&gt; +        &lt;/entry&gt;
&gt;          &lt;entry key='/ajax'&gt;
&gt;            &lt;value&gt;ajax-direct-pipeline&lt;/value&gt;
&gt;          &lt;/entry&gt;
&gt; +        &lt;entry key='/services'&gt;
&gt; +          &lt;value&gt;restful-services-pipeline&lt;/value&gt;
&gt; +        &lt;/entry&gt;
&gt;          &lt;entry key='/desktop'&gt;
&gt;            &lt;value&gt;desktop-pipeline&lt;/value&gt;
&gt;          &lt;/entry&gt;&lt;!-- for jetspeed desktop, the keys /desktop, /action and /render cannot be changed --&gt;
&gt; 
&gt; Modified: portals/jetspeed-2/portal/trunk/pom.xml
&gt; URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/pom.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
&gt; ==============================================================================
&gt; --- portals/jetspeed-2/portal/trunk/pom.xml (original)
&gt; +++ portals/jetspeed-2/portal/trunk/pom.xml Thu Nov 26 19:21:39 2009
&gt; @@ -269,6 +269,7 @@
&gt;      &lt;javax.servlet.jsp.version&gt;2.0&lt;/javax.servlet.jsp.version&gt;
&gt;      &lt;javax.sql.version&gt;2.0&lt;/javax.sql.version&gt;
&gt;      &lt;javax.transaction.version&gt;1.0.1B&lt;/javax.transaction.version&gt;
&gt; +    &lt;javax.ws.rs.version&gt;1.0&lt;/javax.ws.rs.version&gt;
&gt;      &lt;jaxen.version&gt;1.0-FCS&lt;/jaxen.version&gt;
&gt;      &lt;jaxb.version&gt;2.1&lt;/jaxb.version&gt;
&gt;      &lt;jaxb-impl.version&gt;2.1.9&lt;/jaxb-impl.version&gt;
&gt; @@ -311,6 +312,7 @@
&gt;      &lt;ccpp.version&gt;1.0&lt;/ccpp.version&gt;
&gt;      &lt;commonj.version&gt;1.1&lt;/commonj.version&gt;
&gt;      &lt;tyrex.version&gt;1.0.1&lt;/tyrex.version&gt;
&gt; +    &lt;cxf.version&gt;2.2.5&lt;/cxf.version&gt;
&gt;    &lt;/properties&gt;
&gt;  
&gt;    &lt;!-- Dependency Configuration --&gt;
&gt; @@ -974,7 +976,44 @@
&gt;          &lt;artifactId&gt;jaxb-impl&lt;/artifactId&gt;
&gt;          &lt;version&gt;${jaxb-impl.version}&lt;/version&gt;
&gt;        &lt;/dependency&gt;
&gt; -
&gt; +      
&gt; +      &lt;!-- JAX-RS --&gt;
&gt; +      &lt;dependency&gt;
&gt; +        &lt;groupId&gt;javax.ws.rs&lt;/groupId&gt;
&gt; +        &lt;artifactId&gt;jsr311-api&lt;/artifactId&gt;
&gt; +        &lt;version&gt;${javax.ws.rs.version}&lt;/version&gt;
&gt; +      &lt;/dependency&gt;
&gt; +      
&gt; +      &lt;!-- CXF --&gt;
&gt; +      &lt;dependency&gt;
&gt; +        &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
&gt; +        &lt;artifactId&gt;cxf-rt-frontend-jaxrs&lt;/artifactId&gt;
&gt; +        &lt;version&gt;${cxf.version}&lt;/version&gt;
&gt; +        &lt;scope&gt;runtime&lt;/scope&gt;
&gt; +        &lt;exclusions&gt;
&gt; +          &lt;exclusion&gt;
&gt; +            &lt;groupId&gt;commons-logging&lt;/groupId&gt;
&gt; +            &lt;artifactId&gt;commons-logging&lt;/artifactId&gt;
&gt; +          &lt;/exclusion&gt;
&gt; +          &lt;exclusion&gt;
&gt; +            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; +            &lt;artifactId&gt;spring-core&lt;/artifactId&gt;
&gt; +          &lt;/exclusion&gt;
&gt; +          &lt;exclusion&gt;
&gt; +            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; +            &lt;artifactId&gt;spring-beans&lt;/artifactId&gt;
&gt; +          &lt;/exclusion&gt;
&gt; +          &lt;exclusion&gt;
&gt; +            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; +            &lt;artifactId&gt;spring-context&lt;/artifactId&gt;
&gt; +          &lt;/exclusion&gt;
&gt; +          &lt;exclusion&gt;
&gt; +            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
&gt; +            &lt;artifactId&gt;spring-web&lt;/artifactId&gt;
&gt; +          &lt;/exclusion&gt;
&gt; +        &lt;/exclusions&gt;
&gt; +      &lt;/dependency&gt;
&gt; +      
&gt;        &lt;!-- Test --&gt;
&gt;        &lt;dependency&gt;
&gt;          &lt;groupId&gt;junit&lt;/groupId&gt;
&gt; 
&gt; 
&gt; 
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
&gt; For additional commands, e-mail: jetspeed-dev-help@portals.apache.org
&gt; 


</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884670 - in /portals/jetspeed-2/portal/trunk: ./ applications/jetspeed/src/main/resources/ applications/jetspeed/src/main/webapp/WEB-INF/ components/jetspeed-portal/ components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/val...</title>
<author><name>woonsan@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c20091126192146.792CE23888C2@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091126192146-792CE23888C2@eris-apache-org%3e</id>
<updated>2009-11-26T19:21:42Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: woonsan
Date: Thu Nov 26 19:21:39 2009
New Revision: 884670

URL: http://svn.apache.org/viewvc?rev=884670&amp;view=rev
Log:
JS2-1087: Adding initial JAX-RS support as prototype
The following urls are testable:

(1) GET all PAs: http://localhost:8080/jetspeed/services/portletregistry/application/%20
(2) GET demo PA: http://localhost:8080/jetspeed/services/portletregistry/application/demo/
(3) GET all PDs: http://localhost:8080/jetspeed/services/portletregistry/definition/%20
(4) GET all PDs of demo PA: http://localhost:8080/jetspeed/services/portletregistry/definition/demo/
(5) GET demo::PickANumberPortlet PD: http://localhost:8080/jetspeed/services/portletregistry/definition/demo::PickANumberPortlet/

TODO: Remove '%20' in the urls to indicate '*', test with json client and integrate it with toolbox portlet.

Added:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java   (with props)
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java   (with props)
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java   (with props)
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java   (with props)
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java   (with props)
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java   (with props)
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java   (with props)
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java   (with props)
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java   (with props)
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java   (with props)
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java   (with props)
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java   (with props)
    portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml   (with props)
Modified:
    portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml
    portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/   (props changed)
    portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml
    portals/jetspeed-2/portal/trunk/pom.xml

Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml (original)
+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/resources/log4j.xml Thu Nov 26 19:21:39 2009
@@ -94,7 +94,15 @@
       &lt;param name="ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} %-5p [%C.%M():%L] %m%n"/&gt;
     &lt;/layout&gt;
   &lt;/appender&gt;
-
+  
+  &lt;!-- cxf appender --&gt;
+  &lt;appender name="cxf" class="org.apache.log4j.FileAppender"&gt;
+    &lt;param name="File" value="${org.apache.portals.logdir}/jetspeed-cxf.log"/&gt;
+    &lt;layout class="org.apache.log4j.PatternLayout"&gt;
+      &lt;param name="ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} %-5p [%C.%M():%L] %m%n"/&gt;
+    &lt;/layout&gt;
+  &lt;/appender&gt;
+  
   &lt;!-- ====================================================================== --&gt;
   &lt;!-- L O G G E R S                                                          --&gt;
   &lt;!-- ====================================================================== --&gt;
@@ -134,6 +142,11 @@
     &lt;appender-ref ref="ojb"/&gt;
   &lt;/category&gt;
   
+  &lt;category additivity="false" name="org.apache.cxf"&gt;
+    &lt;level value="ERROR"/&gt;
+    &lt;appender-ref ref="cxf"/&gt;
+  &lt;/category&gt;
+  
   &lt;category additivity="false" name="scheduler"&gt;
     &lt;level value="ERROR"/&gt;
     &lt;appender-ref ref="scheduler"/&gt;

Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml (original)
+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/web.xml Thu Nov 26 19:21:39 2009
@@ -180,6 +180,10 @@
   &lt;/servlet-mapping&gt;
   &lt;servlet-mapping&gt;
     &lt;servlet-name&gt;jetspeed&lt;/servlet-name&gt;
+    &lt;url-pattern&gt;/services/*&lt;/url-pattern&gt;
+  &lt;/servlet-mapping&gt;
+  &lt;servlet-mapping&gt;
+    &lt;servlet-name&gt;jetspeed&lt;/servlet-name&gt;
     &lt;url-pattern&gt;/desktop/*&lt;/url-pattern&gt;
   &lt;/servlet-mapping&gt;
   &lt;servlet-mapping&gt;

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/pom.xml Thu Nov 26 19:21:39 2009
@@ -165,6 +165,15 @@
       &lt;groupId&gt;org.springframework&lt;/groupId&gt;
       &lt;artifactId&gt;spring-context-support&lt;/artifactId&gt;
     &lt;/dependency&gt;
+    &lt;dependency&gt;
+      &lt;groupId&gt;javax.ws.rs&lt;/groupId&gt;
+      &lt;artifactId&gt;jsr311-api&lt;/artifactId&gt;
+    &lt;/dependency&gt;
+    &lt;dependency&gt;
+      &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+      &lt;artifactId&gt;cxf-rt-frontend-jaxrs&lt;/artifactId&gt;
+      &lt;scope&gt;runtime&lt;/scope&gt;
+    &lt;/dependency&gt;
 
     &lt;!-- Test Dependencies --&gt;
     &lt;dependency&gt;

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java?rev=884670&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java (added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java Thu Nov 26 19:21:39 2009
@@ -0,0 +1,125 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.pipeline.valve.impl;
+
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Map;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServlet;
+
+import org.apache.jetspeed.pipeline.PipelineException;
+import org.apache.jetspeed.pipeline.valve.AbstractValve;
+import org.apache.jetspeed.pipeline.valve.ValveContext;
+import org.apache.jetspeed.request.RequestContext;
+
+/**
+ * ServletDelegatingValve
+ * 
+ * @version $Id$
+ */
+public class ServletDelegatingValve extends AbstractValve
+{
+    protected HttpServlet servlet;
+    protected ServletConfig config;
+
+    public ServletDelegatingValve(HttpServlet servlet, ServletConfig config)
+    {
+        this.servlet = servlet;
+        this.config = config;
+    }
+    
+    @Override
+    public void initialize() throws PipelineException
+    {
+        try
+        {
+            servlet.init(config);
+        }
+        catch (Exception e)
+        {
+            throw new PipelineException(e);
+        }
+    }
+
+    public void destroy()
+    {
+        servlet.destroy();
+    }
+
+    @Override
+    public void invoke(RequestContext request, ValveContext context) throws PipelineException
+    {
+        try
+        {
+            servlet.service(request.getRequest(), request.getResponse());
+        }
+        catch (Exception e)
+        {
+            throw new PipelineException(e);
+        }
+        
+        // continue
+        context.invokeNext(request);
+    }
+
+    public static class ServletConfigImpl implements ServletConfig
+    {
+        protected String servletName;
+        protected Map&lt;String, String&gt; initParams;
+        protected ServletContext servletContext;
+
+        public ServletConfigImpl(String servletName, Map&lt;String, String&gt; initParams)
+        {
+            this(servletName, initParams, null);
+        }
+
+        public ServletConfigImpl(String servletName, Map&lt;String, String&gt; initParams, ServletContext servletContext)
+        {
+            this.servletName = servletName;
+            this.initParams = initParams;
+            this.servletContext = servletContext;
+        }
+
+        public String getInitParameter(String paramName)
+        {
+            return initParams.get(paramName);
+        }
+
+        public Enumeration getInitParameterNames()
+        {
+            return Collections.enumeration(initParams.keySet());
+        }
+
+        public ServletContext getServletContext()
+        {
+            return servletContext;
+        }
+
+        public void setServletContext(ServletContext servletContext)
+        {
+            this.servletContext = servletContext;
+        }
+
+        public String getServletName()
+        {
+            return servletName;
+        }
+    }
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ServletDelegatingValve.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Thu Nov 26 19:21:39 2009
@@ -1,2 +1,2 @@
-target
+target
 surefire*.properties

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java?rev=884670&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java (added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java Thu Nov 26 19:21:39 2009
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.beans;
+
+import java.io.Serializable;
+import java.util.Locale;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.jetspeed.om.portlet.Description;
+
+/**
+ * DescriptionBean
+ * 
+ * @version $Id$
+ */
+@XmlRootElement(name="description")
+public class DescriptionBean implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+    
+    private String description;
+    private String lang;
+    private String localeString;
+
+    public DescriptionBean()
+    {
+        
+    }
+    
+    public DescriptionBean(final Description description)
+    {
+        this.description = description.getDescription();
+        lang = description.getLang();
+        
+        Locale locale = description.getLocale();
+        
+        if (locale != null)
+        {
+            localeString = locale.toString();
+        }
+    }
+
+    public String getDescription()
+    {
+        return description;
+    }
+
+    public void setDescription(String description)
+    {
+        this.description = description;
+    }
+
+    public String getLang()
+    {
+        return lang;
+    }
+
+    public void setLang(String lang)
+    {
+        this.lang = lang;
+    }
+
+    public String getLocaleString()
+    {
+        return localeString;
+    }
+
+    public void setLocaleString(String localeString)
+    {
+        this.localeString = localeString;
+    }
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DescriptionBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java?rev=884670&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java (added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java Thu Nov 26 19:21:39 2009
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.beans;
+
+import java.io.Serializable;
+import java.util.Locale;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.jetspeed.om.portlet.DisplayName;
+
+/**
+ * DisplayNameBean
+ * 
+ * @version $Id$
+ */
+@XmlRootElement(name="displayName")
+public class DisplayNameBean implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+    
+    private String displayName;
+    private String lang;
+    private String localeString;
+
+    public DisplayNameBean()
+    {
+        
+    }
+    
+    public DisplayNameBean(final DisplayName displayName)
+    {
+        this.displayName = displayName.getDisplayName();
+        lang = displayName.getLang();
+        
+        Locale locale = displayName.getLocale();
+        
+        if (locale != null)
+        {
+            localeString = locale.toString();
+        }
+    }
+
+    public String getDisplayName()
+    {
+        return displayName;
+    }
+
+    public void setDisplayName(String displayName)
+    {
+        this.displayName = displayName;
+    }
+
+    public String getLang()
+    {
+        return lang;
+    }
+
+    public void setLang(String lang)
+    {
+        this.lang = lang;
+    }
+
+    public String getLocaleString()
+    {
+        return localeString;
+    }
+
+    public void setLocaleString(String localeString)
+    {
+        this.localeString = localeString;
+    }
+    
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/DisplayNameBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java?rev=884670&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java (added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java Thu Nov 26 19:21:39 2009
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.beans;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.jetspeed.om.portlet.Description;
+import org.apache.jetspeed.om.portlet.InitParam;
+
+/**
+ * InitParamBean
+ * 
+ * @version $Id$
+ */
+@XmlRootElement(name="initParam")
+public class InitParamBean implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+    
+    private String paramName;
+    private String paramValue;
+    private Collection&lt;DescriptionBean&gt; descriptionBeans;
+    
+    public InitParamBean()
+    {
+        
+    }
+    
+    public InitParamBean(final InitParam initParam)
+    {
+        paramName = initParam.getParamName();
+        paramValue = initParam.getParamValue();
+        
+        ArrayList&lt;DescriptionBean&gt; descriptionBeanList = new ArrayList&lt;DescriptionBean&gt;();
+        
+        for (Description description : initParam.getDescriptions())
+        {
+            descriptionBeanList.add(new DescriptionBean(description));
+        }
+        
+        descriptionBeans = descriptionBeanList;
+    }
+
+    public String getParamName()
+    {
+        return paramName;
+    }
+
+    public void setParamName(String paramName)
+    {
+        this.paramName = paramName;
+    }
+
+    public String getParamValue()
+    {
+        return paramValue;
+    }
+
+    public void setParamValue(String paramValue)
+    {
+        this.paramValue = paramValue;
+    }
+    
+    @XmlElementWrapper(name="descriptions")
+    @XmlElements(@XmlElement(name="description"))
+    public Collection&lt;DescriptionBean&gt; getDescriptionBeans()
+    {
+        return descriptionBeans;
+    }
+
+    public void setDescriptionBeans(Collection&lt;DescriptionBean&gt; descriptionBeans)
+    {
+        this.descriptionBeans = descriptionBeans;
+    }
+    
+    
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/InitParamBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java?rev=884670&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java (added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java Thu Nov 26 19:21:39 2009
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.beans;
+
+import java.util.Locale;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.jetspeed.om.portlet.Language;
+
+/**
+ * LanguageBean
+ * 
+ * @version $Id$
+ */
+@XmlRootElement(name="language")
+public class LanguageBean extends PortletInfoBean
+{
+    private static final long serialVersionUID = 1L;
+    
+    private String localeString;
+    
+    public LanguageBean()
+    {
+        super();
+    }
+    
+    public LanguageBean(final Language language)
+    {
+        super(language);
+        
+        Locale locale = language.getLocale();
+        
+        if (locale != null)
+        {
+            localeString = locale.toString();
+        }
+    }
+    
+    public String getLocaleString()
+    {
+        return localeString;
+    }
+
+    public void setLocaleString(String localeString)
+    {
+        this.localeString = localeString;
+    }
+
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/LanguageBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java?rev=884670&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java (added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java Thu Nov 26 19:21:39 2009
@@ -0,0 +1,164 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.beans;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.jetspeed.om.portlet.Description;
+import org.apache.jetspeed.om.portlet.DisplayName;
+import org.apache.jetspeed.om.portlet.PortletApplication;
+
+/**
+ * PortletApplicationBean
+ * 
+ * @version $Id$
+ */
+@XmlRootElement(name="application")
+public class PortletApplicationBean implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+    
+    private String name;
+    private String contextPath;
+    private String defaultNamespace;
+    private int applicationType;
+    private long checksum;
+    private long revision;
+    private Collection&lt;DisplayNameBean&gt; displayNameBeans;
+    private Collection&lt;DescriptionBean&gt; descriptionBeans;
+    
+    public PortletApplicationBean()
+    {
+        
+    }
+    
+    public PortletApplicationBean(final PortletApplication portletApplication)
+    {
+        name = portletApplication.getName();
+        contextPath = portletApplication.getContextPath();
+        defaultNamespace = portletApplication.getDefaultNamespace();
+        applicationType = portletApplication.getApplicationType();
+        checksum = portletApplication.getChecksum();
+        revision = portletApplication.getRevision();
+        
+        ArrayList&lt;DisplayNameBean&gt; displayNameBeanList = new ArrayList&lt;DisplayNameBean&gt;();
+        for (DisplayName displayName : portletApplication.getDisplayNames())
+        {
+            displayNameBeanList.add(new DisplayNameBean(displayName));
+        }
+        displayNameBeans = displayNameBeanList;
+        
+        ArrayList&lt;DescriptionBean&gt; descriptionBeanList = new ArrayList&lt;DescriptionBean&gt;();
+        for (Description description : portletApplication.getDescriptions())
+        {
+            descriptionBeanList.add(new DescriptionBean(description));
+        }
+        descriptionBeans = descriptionBeanList;
+    }
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+    public String getContextPath()
+    {
+        return contextPath;
+    }
+
+    public void setContextPath(String contextPath)
+    {
+        this.contextPath = contextPath;
+    }
+
+    public String getDefaultNamespace()
+    {
+        return defaultNamespace;
+    }
+
+    public void setDefaultNamespace(String defaultNamespace)
+    {
+        this.defaultNamespace = defaultNamespace;
+    }
+
+    public int getApplicationType()
+    {
+        return applicationType;
+    }
+
+    public void setApplicationType(int applicationType)
+    {
+        this.applicationType = applicationType;
+    }
+
+    public long getChecksum()
+    {
+        return checksum;
+    }
+
+    public void setChecksum(long checksum)
+    {
+        this.checksum = checksum;
+    }
+
+    public long getRevision()
+    {
+        return revision;
+    }
+
+    public void setRevision(long revision)
+    {
+        this.revision = revision;
+    }
+
+    @XmlElementWrapper(name="displayNames")
+    @XmlElements(@XmlElement(name="displayName"))
+    public Collection&lt;DisplayNameBean&gt; getDisplayNameBeans()
+    {
+        return displayNameBeans;
+    }
+
+    public void setDisplayNameBeans(Collection&lt;DisplayNameBean&gt; displayNameBeans)
+    {
+        this.displayNameBeans = displayNameBeans;
+    }
+
+    @XmlElementWrapper(name="descriptions")
+    @XmlElements(@XmlElement(name="description"))
+    public Collection&lt;DescriptionBean&gt; getDescriptionBeans()
+    {
+        return descriptionBeans;
+    }
+
+    public void setDescriptionBeans(Collection&lt;DescriptionBean&gt; descriptionBeans)
+    {
+        this.descriptionBeans = descriptionBeans;
+    }
+    
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java?rev=884670&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java (added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java Thu Nov 26 19:21:39 2009
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.beans;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * PortletApplicationBeans
+ * 
+ * @version $Id$
+ */
+@XmlRootElement(name="applications")
+public class PortletApplicationBeans implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+    
+    private Collection&lt;PortletApplicationBean&gt; portletApplicationBeans;
+    
+    public PortletApplicationBeans()
+    {
+        
+    }
+    
+    @XmlElements(@XmlElement(name="application"))
+    public Collection&lt;PortletApplicationBean&gt; getPortletApplicationBeans()
+    {
+        return portletApplicationBeans;
+    }
+    
+    public void setPortletApplicationBeans(Collection&lt;PortletApplicationBean&gt; portletApplicationBeans)
+    {
+        this.portletApplicationBeans = portletApplicationBeans;
+    }
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java?rev=884670&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java (added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java Thu Nov 26 19:21:39 2009
@@ -0,0 +1,171 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.beans;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.jetspeed.om.portlet.Description;
+import org.apache.jetspeed.om.portlet.DisplayName;
+import org.apache.jetspeed.om.portlet.Language;
+import org.apache.jetspeed.om.portlet.PortletDefinition;
+import org.apache.jetspeed.om.portlet.Supports;
+
+/**
+ * PortletDefinitionBean
+ * 
+ * @version $Id$
+ */
+@XmlRootElement(name="definition")
+public class PortletDefinitionBean implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+    
+    private String applicationName;
+    private String portletName;
+    private PortletInfoBean portletInfoBean;
+    private Collection&lt;DisplayNameBean&gt; displayNameBeans;
+    private Collection&lt;DescriptionBean&gt; descriptionBeans;
+    private Collection&lt;SupportsBean&gt; supportsBeans;
+    private Collection&lt;LanguageBean&gt; languageBeans;
+    
+    public PortletDefinitionBean()
+    {
+        
+    }
+    
+    public PortletDefinitionBean(final PortletDefinition portletDefinition)
+    {
+        applicationName = portletDefinition.getApplication().getName();
+        portletName = portletDefinition.getPortletName();
+        portletInfoBean = new PortletInfoBean(portletDefinition.getPortletInfo());
+        
+        ArrayList&lt;DisplayNameBean&gt; displayNameBeanList = new ArrayList&lt;DisplayNameBean&gt;();
+        for (DisplayName displayName : portletDefinition.getDisplayNames())
+        {
+            displayNameBeanList.add(new DisplayNameBean(displayName));
+        }
+        displayNameBeans = displayNameBeanList;
+        
+        ArrayList&lt;DescriptionBean&gt; descriptionBeanList = new ArrayList&lt;DescriptionBean&gt;();
+        for (Description description : portletDefinition.getDescriptions())
+        {
+            descriptionBeanList.add(new DescriptionBean(description));
+        }
+        descriptionBeans = descriptionBeanList;
+        
+        ArrayList&lt;SupportsBean&gt; supportsBeanList = new ArrayList&lt;SupportsBean&gt;();
+        for (Supports supports : portletDefinition.getSupports())
+        {
+            supportsBeanList.add(new SupportsBean(supports));
+        }
+        supportsBeans = supportsBeanList;
+        
+        ArrayList&lt;LanguageBean&gt; languageBeanList = new ArrayList&lt;LanguageBean&gt;();
+        for (Language language : portletDefinition.getLanguages())
+        {
+            languageBeanList.add(new LanguageBean(language));
+        }
+        languageBeans = languageBeanList;
+    }
+
+    public String getApplicationName()
+    {
+        return applicationName;
+    }
+
+    public void setApplicationName(String applicationName)
+    {
+        this.applicationName = applicationName;
+    }
+
+    public String getPortletName()
+    {
+        return portletName;
+    }
+
+    public void setPortletName(String portletName)
+    {
+        this.portletName = portletName;
+    }
+
+    @XmlElement(name="portletInfo")
+    public PortletInfoBean getPortletInfoBean()
+    {
+        return portletInfoBean;
+    }
+
+    public void setPortletInfoBean(PortletInfoBean portletInfoBean)
+    {
+        this.portletInfoBean = portletInfoBean;
+    }
+
+    @XmlElementWrapper(name="displayNames")
+    @XmlElements(@XmlElement(name="displayName"))
+    public Collection&lt;DisplayNameBean&gt; getDisplayNameBeans()
+    {
+        return displayNameBeans;
+    }
+
+    public void setDisplayNameBeans(Collection&lt;DisplayNameBean&gt; displayNameBeans)
+    {
+        this.displayNameBeans = displayNameBeans;
+    }
+
+    @XmlElementWrapper(name="descriptions")
+    @XmlElements(@XmlElement(name="description"))
+    public Collection&lt;DescriptionBean&gt; getDescriptionBeans()
+    {
+        return descriptionBeans;
+    }
+
+    public void setDescriptionBeans(Collection&lt;DescriptionBean&gt; descriptionBeans)
+    {
+        this.descriptionBeans = descriptionBeans;
+    }
+
+    @XmlElementWrapper(name="supports")
+    @XmlElements(@XmlElement(name="support"))
+    public Collection&lt;SupportsBean&gt; getSupportsBeans()
+    {
+        return supportsBeans;
+    }
+
+    public void setSupportsBeans(Collection&lt;SupportsBean&gt; supportsBeans)
+    {
+        this.supportsBeans = supportsBeans;
+    }
+
+    @XmlElementWrapper(name="languages")
+    @XmlElements(@XmlElement(name="language"))
+    public Collection&lt;LanguageBean&gt; getLanguageBeans()
+    {
+        return languageBeans;
+    }
+
+    public void setLanguageBeans(Collection&lt;LanguageBean&gt; languageBeans)
+    {
+        this.languageBeans = languageBeans;
+    }
+    
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java?rev=884670&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java (added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java Thu Nov 26 19:21:39 2009
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.beans;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * PortletDefinitionBeans
+ * 
+ * @version $Id$
+ */
+@XmlRootElement(name="definitions")
+public class PortletDefinitionBeans implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+    
+    private Collection&lt;PortletDefinitionBean&gt; portletDefinitionBeans;
+    
+    public PortletDefinitionBeans()
+    {
+        
+    }
+    
+    @XmlElements(@XmlElement(name="definition"))
+    public Collection&lt;PortletDefinitionBean&gt; getPortletDefinitionBean()
+    {
+        return portletDefinitionBeans;
+    }
+    
+    public void setPortletApplicationBeans(Collection&lt;PortletDefinitionBean&gt; portletDefinitionBeans)
+    {
+        this.portletDefinitionBeans = portletDefinitionBeans;
+    }
+    
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java?rev=884670&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java (added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java Thu Nov 26 19:21:39 2009
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.beans;
+
+import java.io.Serializable;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.jetspeed.om.portlet.PortletInfo;
+
+/**
+ * PortletInfoBean
+ * 
+ * @version $Id$
+ */
+@XmlRootElement(name="portletInfo")
+public class PortletInfoBean implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+    
+    private String keywords;
+    private String shortTitle;
+    private String title;
+    
+    public PortletInfoBean()
+    {
+        
+    }
+    
+    public PortletInfoBean(final PortletInfo portletInfo)
+    {
+        keywords = portletInfo.getKeywords();
+        shortTitle = portletInfo.getShortTitle();
+        title = portletInfo.getTitle();
+    }
+
+    public String getKeywords()
+    {
+        return keywords;
+    }
+
+    public void setKeywords(String keywords)
+    {
+        this.keywords = keywords;
+    }
+
+    public String getShortTitle()
+    {
+        return shortTitle;
+    }
+
+    public void setShortTitle(String shortTitle)
+    {
+        this.shortTitle = shortTitle;
+    }
+
+    public String getTitle()
+    {
+        return title;
+    }
+
+    public void setTitle(String title)
+    {
+        this.title = title;
+    }
+
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletInfoBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java?rev=884670&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java (added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java Thu Nov 26 19:21:39 2009
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.beans;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.jetspeed.om.portlet.Supports;
+
+/**
+ * SupportsBean
+ * 
+ * @version $Id$
+ */
+@XmlRootElement(name="support")
+public class SupportsBean implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+    
+    private String mimeType;
+    private Collection&lt;String&gt; portletModes;
+    private Collection&lt;String&gt; windowStates;
+
+    public SupportsBean()
+    {
+        
+    }
+    
+    public SupportsBean(final Supports supports)
+    {
+        mimeType = supports.getMimeType();
+        portletModes = supports.getPortletModes();
+        windowStates = supports.getWindowStates();
+    }
+
+    public String getMimeType()
+    {
+        return mimeType;
+    }
+
+    public void setMimeType(String mimeType)
+    {
+        this.mimeType = mimeType;
+    }
+
+    @XmlElementWrapper(name="portletModes")
+    @XmlElements(@XmlElement(name="portletMode"))
+    public Collection&lt;String&gt; getPortletModes()
+    {
+        return portletModes;
+    }
+
+    public void setPortletModes(Collection&lt;String&gt; portletModes)
+    {
+        this.portletModes = portletModes;
+    }
+
+    @XmlElementWrapper(name="windowStates")
+    @XmlElements(@XmlElement(name="windowState"))
+    public Collection&lt;String&gt; getWindowStates()
+    {
+        return windowStates;
+    }
+
+    public void setWindowStates(Collection&lt;String&gt; windowStates)
+    {
+        this.windowStates = windowStates;
+    }
+
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/SupportsBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java?rev=884670&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java (added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java Thu Nov 26 19:21:39 2009
@@ -0,0 +1,147 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.services.rest;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.UriInfo;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.jetspeed.Jetspeed;
+import org.apache.jetspeed.components.portletregistry.PortletRegistry;
+import org.apache.jetspeed.om.portlet.PortletApplication;
+import org.apache.jetspeed.om.portlet.PortletDefinition;
+import org.apache.jetspeed.services.beans.PortletApplicationBean;
+import org.apache.jetspeed.services.beans.PortletApplicationBeans;
+import org.apache.jetspeed.services.beans.PortletDefinitionBean;
+import org.apache.jetspeed.services.beans.PortletDefinitionBeans;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * PortletRegistryService
+ * 
+ * @vesion $Id$
+ */
+
+@Path("/portletregistry/")
+public class PortletRegistryService
+{
+    
+    private static Logger log = LoggerFactory.getLogger(PortletRegistryService.class);
+    
+    @Context
+    private ServletConfig servletConfig;
+    
+    @Context
+    private ServletContext servletContext;
+    
+    @Context
+    private HttpServletRequest servletRequest;
+    
+    @Context
+    private UriInfo uriInfo;
+    
+    private PortletRegistry portletRegistry;
+    
+    public PortletRegistryService()
+    {
+        portletRegistry = (PortletRegistry) Jetspeed.getComponentManager().getComponent(PortletRegistry.class);
+    }
+    
+    @GET
+    @Path("/application/{name}")
+    public PortletApplicationBeans getPortletApplication(@PathParam("name") String name)
+    {
+        PortletApplicationBeans paBeans = new PortletApplicationBeans();
+        List&lt;PortletApplicationBean&gt; paBeanList = new ArrayList&lt;PortletApplicationBean&gt;();
+        
+        if (StringUtils.isBlank(name))
+        {
+            for (PortletApplication pa : portletRegistry.getPortletApplications())
+            {
+                paBeanList.add(new PortletApplicationBean(pa));
+            }
+        }
+        else
+        {
+            PortletApplication pa = portletRegistry.getPortletApplication(name, true);
+            
+            if (pa != null)
+            {
+                paBeanList.add(new PortletApplicationBean(pa));
+            }
+        }
+        
+        paBeans.setPortletApplicationBeans(paBeanList);
+        return paBeans;
+    }
+    
+    @GET
+    @Path("/definition/{uniqueName}")
+    public PortletDefinitionBeans getPortletDefinition(@PathParam("uniqueName") String uniqueName)
+    {
+        PortletDefinitionBeans pdBeans = new PortletDefinitionBeans();
+        List&lt;PortletDefinitionBean&gt; pdBeanList = new ArrayList&lt;PortletDefinitionBean&gt;();
+        
+        if (StringUtils.isBlank(uniqueName))
+        {
+            for (PortletDefinition pd : portletRegistry.getAllPortletDefinitions())
+            {
+                pdBeanList.add(new PortletDefinitionBean(pd));
+            }
+        }
+        else
+        {
+            int offset = uniqueName.indexOf("::");
+            
+            if (offset != -1)
+            {
+                PortletDefinition pd = portletRegistry.getPortletDefinitionByUniqueName(uniqueName, true);
+                
+                if (pd != null)
+                {
+                    pdBeanList.add(new PortletDefinitionBean(pd));
+                }
+            }
+            else
+            {
+                PortletApplication pa = portletRegistry.getPortletApplication(uniqueName, true);
+                
+                if (pa != null)
+                {
+                    for (PortletDefinition pd : pa.getPortlets())
+                    {
+                        pdBeanList.add(new PortletDefinitionBean(pd));
+                    }
+                }
+            }
+        }
+        
+        pdBeans.setPortletApplicationBeans(pdBeanList);
+        return pdBeans;
+    }
+    
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml?rev=884670&amp;view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml (added)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml Thu Nov 26 19:21:39 2009
@@ -0,0 +1,55 @@
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+  
+  http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+--&gt;
+&lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"&gt;
+  
+  &lt;bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"&gt;
+    &lt;property name="targetClass" value="java.lang.System"/&gt;
+    &lt;property name="targetMethod" value="setProperty"/&gt;
+    &lt;property name="arguments"&gt;
+      &lt;list&gt;
+        &lt;value&gt;org.apache.cxf.Logger&lt;/value&gt;
+        &lt;value&gt;org.apache.cxf.common.logging.Log4jLogger&lt;/value&gt;
+      &lt;/list&gt;
+    &lt;/property&gt;
+  &lt;/bean&gt;
+  
+  &lt;bean id="cxfServlet" class="org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet"&gt;
+    &lt;meta key="j2:cat" value="default" /&gt;
+  &lt;/bean&gt;
+  
+  &lt;bean id="cxfServletConfig" class="org.apache.jetspeed.pipeline.valve.impl.ServletDelegatingValve$ServletConfigImpl"&gt;
+    &lt;meta key="j2:cat" value="default" /&gt;
+    &lt;constructor-arg value="CXFNonSpringJaxrsServlet" /&gt;
+    &lt;constructor-arg&gt;
+      &lt;props&gt;
+        &lt;!-- White space separted resource class names --&gt;
+        &lt;prop key="jaxrs.serviceClasses"&gt;
+          org.apache.jetspeed.services.rest.PortletRegistryService
+        &lt;/prop&gt;
+      &lt;/props&gt;
+    &lt;/constructor-arg&gt;
+    &lt;property name="servletContext"&gt;
+      &lt;bean class="org.springframework.beans.factory.config.PropertyPathFactoryBean"&gt;
+        &lt;property name="targetObject" ref="javax.servlet.ServletConfig" /&gt;
+        &lt;property name="propertyPath" value="servletContext"/&gt;
+      &lt;/bean&gt;
+    &lt;/property&gt;
+  &lt;/bean&gt;
+  
+&lt;/beans&gt;
\ No newline at end of file

Propchange: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-restful-services.xml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml Thu Nov 26 19:21:39 2009
@@ -349,7 +349,14 @@
       &lt;ref bean="RolesSecurityBehavior" /&gt;
     &lt;/constructor-arg&gt;
   &lt;/bean&gt;
-
+  
+  &lt;bean id="RestfulServicesValve" class="org.apache.jetspeed.pipeline.valve.impl.ServletDelegatingValve" 
+        init-method="initialize" destroy-method="destroy"&gt;
+    &lt;meta key="j2:cat" value="default" /&gt;
+    &lt;constructor-arg ref="cxfServlet" /&gt;
+    &lt;constructor-arg ref="cxfServletConfig" /&gt;
+  &lt;/bean&gt;
+  
   &lt;bean id="DecorationValve" class="org.apache.jetspeed.decoration.DecorationValve" init-method="initialize"&gt;
     &lt;meta key="j2:cat" value="default" /&gt;
     &lt;constructor-arg index='0'&gt;
@@ -714,6 +721,25 @@
     &lt;/constructor-arg&gt;
   &lt;/bean&gt;
 
+  &lt;bean id="restful-services-pipeline" class="org.apache.jetspeed.pipeline.JetspeedPipeline" init-method="initialize"&gt;
+    &lt;meta key="j2:cat" value="default" /&gt;
+    &lt;constructor-arg&gt;
+      &lt;value&gt;RestfulServicesPipeline&lt;/value&gt;
+    &lt;/constructor-arg&gt;
+    &lt;constructor-arg&gt;
+      &lt;list&gt;
+        &lt;ref bean="capabilityValve" /&gt;
+        &lt;ref bean="portalURLValve" /&gt;
+        &lt;ref bean="securityValve" /&gt;
+        &lt;ref bean="localizationValve" /&gt;
+        &lt;ref bean="profilerValve" /&gt;
+        &lt;ref bean="refreshUserHomepageValve" /&gt;
+        &lt;ref bean="containerValve" /&gt;
+        &lt;ref bean="RestfulServicesValve" /&gt;
+      &lt;/list&gt;
+    &lt;/constructor-arg&gt;
+  &lt;/bean&gt;
+  
   &lt;bean id="fileserver-pipeline" class="org.apache.jetspeed.pipeline.JetspeedPipeline" init-method="initialize"&gt;
     &lt;meta key="j2:cat" value="default" /&gt;
     &lt;constructor-arg&gt;
@@ -793,18 +819,21 @@
         &lt;entry key='/portal'&gt;
           &lt;value&gt;jetspeed-pipeline&lt;/value&gt;
         &lt;/entry&gt;
-        &lt;entry key='/ajaxapi'&gt;
-          &lt;value&gt;ajax-pipeline&lt;/value&gt;
-        &lt;/entry&gt;
         &lt;entry key='/login'&gt;
           &lt;value&gt;jetspeed-pipeline&lt;/value&gt;
         &lt;/entry&gt;
         &lt;entry key='/fileserver'&gt;
           &lt;value&gt;fileserver-pipeline&lt;/value&gt;
         &lt;/entry&gt;
+        &lt;entry key='/ajaxapi'&gt;
+          &lt;value&gt;ajax-pipeline&lt;/value&gt;
+        &lt;/entry&gt;
         &lt;entry key='/ajax'&gt;
           &lt;value&gt;ajax-direct-pipeline&lt;/value&gt;
         &lt;/entry&gt;
+        &lt;entry key='/services'&gt;
+          &lt;value&gt;restful-services-pipeline&lt;/value&gt;
+        &lt;/entry&gt;
         &lt;entry key='/desktop'&gt;
           &lt;value&gt;desktop-pipeline&lt;/value&gt;
         &lt;/entry&gt;&lt;!-- for jetspeed desktop, the keys /desktop, /action and /render cannot be changed --&gt;

Modified: portals/jetspeed-2/portal/trunk/pom.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/pom.xml?rev=884670&amp;r1=884669&amp;r2=884670&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/pom.xml (original)
+++ portals/jetspeed-2/portal/trunk/pom.xml Thu Nov 26 19:21:39 2009
@@ -269,6 +269,7 @@
     &lt;javax.servlet.jsp.version&gt;2.0&lt;/javax.servlet.jsp.version&gt;
     &lt;javax.sql.version&gt;2.0&lt;/javax.sql.version&gt;
     &lt;javax.transaction.version&gt;1.0.1B&lt;/javax.transaction.version&gt;
+    &lt;javax.ws.rs.version&gt;1.0&lt;/javax.ws.rs.version&gt;
     &lt;jaxen.version&gt;1.0-FCS&lt;/jaxen.version&gt;
     &lt;jaxb.version&gt;2.1&lt;/jaxb.version&gt;
     &lt;jaxb-impl.version&gt;2.1.9&lt;/jaxb-impl.version&gt;
@@ -311,6 +312,7 @@
     &lt;ccpp.version&gt;1.0&lt;/ccpp.version&gt;
     &lt;commonj.version&gt;1.1&lt;/commonj.version&gt;
     &lt;tyrex.version&gt;1.0.1&lt;/tyrex.version&gt;
+    &lt;cxf.version&gt;2.2.5&lt;/cxf.version&gt;
   &lt;/properties&gt;
 
   &lt;!-- Dependency Configuration --&gt;
@@ -974,7 +976,44 @@
         &lt;artifactId&gt;jaxb-impl&lt;/artifactId&gt;
         &lt;version&gt;${jaxb-impl.version}&lt;/version&gt;
       &lt;/dependency&gt;
-
+      
+      &lt;!-- JAX-RS --&gt;
+      &lt;dependency&gt;
+        &lt;groupId&gt;javax.ws.rs&lt;/groupId&gt;
+        &lt;artifactId&gt;jsr311-api&lt;/artifactId&gt;
+        &lt;version&gt;${javax.ws.rs.version}&lt;/version&gt;
+      &lt;/dependency&gt;
+      
+      &lt;!-- CXF --&gt;
+      &lt;dependency&gt;
+        &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
+        &lt;artifactId&gt;cxf-rt-frontend-jaxrs&lt;/artifactId&gt;
+        &lt;version&gt;${cxf.version}&lt;/version&gt;
+        &lt;scope&gt;runtime&lt;/scope&gt;
+        &lt;exclusions&gt;
+          &lt;exclusion&gt;
+            &lt;groupId&gt;commons-logging&lt;/groupId&gt;
+            &lt;artifactId&gt;commons-logging&lt;/artifactId&gt;
+          &lt;/exclusion&gt;
+          &lt;exclusion&gt;
+            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
+            &lt;artifactId&gt;spring-core&lt;/artifactId&gt;
+          &lt;/exclusion&gt;
+          &lt;exclusion&gt;
+            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
+            &lt;artifactId&gt;spring-beans&lt;/artifactId&gt;
+          &lt;/exclusion&gt;
+          &lt;exclusion&gt;
+            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
+            &lt;artifactId&gt;spring-context&lt;/artifactId&gt;
+          &lt;/exclusion&gt;
+          &lt;exclusion&gt;
+            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
+            &lt;artifactId&gt;spring-web&lt;/artifactId&gt;
+          &lt;/exclusion&gt;
+        &lt;/exclusions&gt;
+      &lt;/dependency&gt;
+      
       &lt;!-- Test --&gt;
       &lt;dependency&gt;
         &lt;groupId&gt;junit&lt;/groupId&gt;



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Created: (JS2-1087) Initial JAX-RS services in Jetspeed-2</title>
<author><name>&quot;Woonsan Ko (JIRA)&quot; &lt;jetspeed-dev@portals.apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c1571616577.1259262759726.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c1571616577-1259262759726-JavaMail-jira@brutus%3e</id>
<updated>2009-11-26T19:12:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Initial JAX-RS services in Jetspeed-2
-------------------------------------

                 Key: JS2-1087
                 URL: https://issues.apache.org/jira/browse/JS2-1087
             Project: Jetspeed 2
          Issue Type: New Feature
            Reporter: Woonsan Ko
            Assignee: Woonsan Ko
             Fix For: 2.2.1




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>[jira] Resolved: (JS2-1085) Category Portlet Selector Edit Mode NPE</title>
<author><name>&quot;David Sean Taylor (JIRA)&quot; &lt;jetspeed-dev@portals.apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c1311978509.1259181519625.JavaMail.jira@brutus%3e"/>
<id>urn:uuid:%3c1311978509-1259181519625-JavaMail-jira@brutus%3e</id>
<updated>2009-11-25T20:38:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>

     [ https://issues.apache.org/jira/browse/JS2-1085?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

David Sean Taylor resolved JS2-1085.
------------------------------------

    Resolution: Fixed

Summary: A Bug surfaced in Category Portlet Selector when storing defaults, the selector threw
an NPE during store to persistent preferences. Discovered that the selector was still coded
against 2.1.3 apis, and needed to be updated. Then discovered the PortletDefinitionImpl never
keeps a copy of the Preferences collection, but always delegates to the Preferences Provider
to retrieve preferences, and then wrappers the result from the provider with every accessor
call. The selector was often dereferencing the prefs collection. This should not be a problem
in a normal transactional environment... For now, the problem can be avoided by only dereferencing
once, making manipulations to the held Preferences, and then 'committing' with a new storeDefaults
api which takes a second Preferences handle. Also got bogged down in an OJB debugging session
that turned out to be a simple typo in the OJB mapping file (username is not a primary key(!)).


&gt; Category Portlet Selector Edit Mode NPE
&gt; ---------------------------------------
&gt;
&gt;                 Key: JS2-1085
&gt;                 URL: https://issues.apache.org/jira/browse/JS2-1085
&gt;             Project: Jetspeed 2
&gt;          Issue Type: Bug
&gt;          Components: Customizer
&gt;    Affects Versions: 2.2.0
&gt;            Reporter: David Sean Taylor
&gt;            Assignee: David Sean Taylor
&gt;             Fix For: 2.2.1
&gt;
&gt;
&gt; Category Portlet Selector throws an NPE when you go into Edit Mode and add a new "Category".


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884255 - in /portals/jetspeed-2/applications/j2-admin/trunk/src/main: java/org/apache/jetspeed/portlets/selector/ java/org/apache/jetspeed/portlets/spaces/ webapp/WEB-INF/view/selectors/</title>
<author><name>taylor@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c20091125203643.F1D5F23888C2@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091125203643-F1D5F23888C2@eris-apache-org%3e</id>
<updated>2009-11-25T20:36:43Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: taylor
Date: Wed Nov 25 20:36:43 2009
New Revision: 884255

URL: http://svn.apache.org/viewvc?rev=884255&amp;view=rev
Log:
https://issues.apache.org/jira/browse/JS2-1085
A Bug surfaced in Category Portlet Selector when storing defaults, the selector threw an NPE
during store to persistent preferences. Discovered that the selector was still coded against
2.1.3 apis, and needed to be updated. Then discovered the PortletDefinitionImpl never keeps
a copy of the Preferences collection, but always delegates to the Preferences Provider to
retrieve preferences, and then wrappers the result from the provider with every accessor call.
The selector was often dereferencing the prefs collection. This should not be a problem in
a normal transactional environment... For now, the problem can be avoided by only dereferencing
once, making manipulations to the held Preferences, and then 'committing' with a new storeDefaults
api which takes a second Preferences handle. Also got bogged down in an OJB debugging session
that turned out to be a simple typo in the OJB mapping file (username is not a primary key(!)).


Modified:
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/selector/CategoryPortletSelector.java
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/BreadcrumbMenu.java
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/selectors/category-edit-selector.vm

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/selector/CategoryPortletSelector.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/selector/CategoryPortletSelector.java?rev=884255&amp;r1=884254&amp;r2=884255&amp;view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/selector/CategoryPortletSelector.java
(original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/selector/CategoryPortletSelector.java
Wed Nov 25 20:36:43 2009
@@ -43,6 +43,8 @@
 import org.apache.jetspeed.CommonPortletServices;
 import org.apache.jetspeed.JetspeedActions;
 import org.apache.jetspeed.PortalReservedParameters;
+import org.apache.jetspeed.components.portletpreferences.PortletPreferencesProvider;
+import org.apache.jetspeed.components.portletregistry.FailedToStorePortletDefinitionException;
 import org.apache.jetspeed.components.portletregistry.PortletRegistry;
 import org.apache.jetspeed.headerresource.HeaderResource;
 import org.apache.jetspeed.layout.PageLayoutComponent;
@@ -53,6 +55,7 @@
 import org.apache.jetspeed.om.portlet.PortletApplication;
 import org.apache.jetspeed.om.portlet.PortletDefinition;
 import org.apache.jetspeed.om.portlet.Preference;
+import org.apache.jetspeed.om.portlet.Preferences;
 import org.apache.jetspeed.page.PageManager;
 import org.apache.jetspeed.portlets.CategoryInfo;
 import org.apache.jetspeed.portlets.PortletInfo;
@@ -97,6 +100,7 @@
 	private final String PAGENUMNER = "pageNumber";
 	private final String FILTER = "filter";
     
+    protected PortletPreferencesProvider preferenceService;	
     protected PortletRegistry registry;
     protected SearchEngine searchEngine;
     protected Profiler profiler;
@@ -134,6 +138,11 @@
         {
             throw new PortletException("Failed to find the PageLayoutComponent on portlet
initialization");
         }        
+        preferenceService = (PortletPreferencesProvider)context.getAttribute(CommonPortletServices.CPS_PORTLET_PREFERENCES_PROVIDER);
+        if (null == preferenceService)
+        {
+            throw new PortletException("Failed to find the Prefs Service on portlet initialization");
+        }
         rand = new Random( 19580427 );
     }
     
@@ -476,8 +485,9 @@
             PortletApplication pa = registry.getPortletApplication("j2-admin");
             String portletName = this.getPortletName();
             PortletDefinition portlet = (PortletDefinition) pa.getPortlet(portletName);
-            boolean updated = updateNumericPref("Columns", columns, 10, portlet);
-            updated = updated | updateNumericPref("Rows", rows, 100, portlet);
+            Preferences prefs = portlet.getPortletPreferences();
+            boolean updated = updateNumericPref("Columns", columns, 10, prefs);
+            updated = updated | updateNumericPref("Rows", rows, 100, prefs);
                         
             // process removes first
             if (!isEmpty(removes))
@@ -486,7 +496,7 @@
                 while (tokenizer.hasMoreTokens())
                 {
                     String name = tokenizer.nextToken().trim();
-                    updated = updated | removePref("Keywords:" + name, portlet);
+                    updated = updated | removePref("Keywords:" + name, prefs);
                 }                
             }
             
@@ -499,7 +509,7 @@
                 {
                     String name = tokenizer.nextToken().trim();
                     String keys = keyTokenizer.nextToken().trim();
-                    updated = updated | addPref("Keywords:" + name, keys, portlet);
+                    updated = updated | addPref("Keywords:" + name, keys, prefs);
                 }                
             }
             
@@ -512,7 +522,7 @@
                 {
                     String name = tokenizer.nextToken().trim();
                     String keys = keyTokenizer.nextToken().trim();                    
-                    updated = updated | modifyPref("Keywords:" + name, keys, portlet);
+                    updated = updated | modifyPref("Keywords:" + name, keys, prefs);
                 }                
             }
                                     
@@ -544,10 +554,11 @@
                         count++;
                     }
                     cats = temp.toString();
-                    modifyPref("Categories", cats, portlet);
+                    modifyPref("Categories", cats, prefs);
                     
                     // finally save it all
-                    registry.savePortletDefinition(portlet);
+                    //registry.savePortletDefinition(portlet);
+                    preferenceService.storeDefaults(portlet, prefs);                    
                 }
             }
             catch (Exception e)
@@ -584,50 +595,56 @@
         }
     }
 
-    private boolean addPref(String prefName, String keywords, PortletDefinition portlet)
+    private boolean addPref(String prefName, String keywords, Preferences prefs)
     {
-        Preference pref = portlet.getPortletPreferences().getPortletPreference(prefName);
       
+        Preference pref = prefs.getPortletPreference(prefName);
         if (pref == null)
         {
-            portlet.getPortletPreferences().addPreference(prefName);
-            pref = portlet.getPortletPreferences().getPortletPreference(prefName);
-            pref.addValue(keywords);
+            pref = prefs.addPreference(prefName);
+            pref.setReadOnly(false);
+            pref.addValue(keywords);            
         }
         else
         {
-            return modifyPref(prefName, keywords, portlet);           
+            return modifyPref(prefName, keywords, prefs);           
         }        
         return true;
     }
     
-    private boolean modifyPref(String prefName, String keywords, PortletDefinition portlet)
+    private boolean modifyPref(String prefName, String keywords, Preferences prefs)
     {
-        Preference prefComp =  portlet.getPortletPreferences().getPortletPreference(prefName);
-        List&lt;String&gt; values = prefComp.getValues();
-        if(!values.get(0).equals(keywords))
+        Preference pref = prefs.getPortletPreference(prefName);
+        if (pref == null)
         {
-            values.set(0, keywords);
-            return true;
+            return addPref(prefName, keywords, prefs);
+        }
+        else
+        {
+            List&lt;String&gt; values = pref.getValues();
+            if (!values.get(0).equals(keywords))
+            {
+                values.set(0, keywords);
+                return true;
+            }
         }
         return false;
     }
     
-    private boolean removePref(String prefName, PortletDefinition portlet)
+    private boolean removePref(String prefName, Preferences prefs)
     {
-        List&lt;Preference&gt; preferences = portlet.getPortletPreferences().getPortletPreferences();
-        
-        for(Preference pref : preferences)
+        List&lt;Preference&gt; prefs2 = prefs.getPortletPreferences();
+        for(Preference pref : prefs2)
         {
-            if(pref.getName().equals(prefName))
+            if (pref.getName().equals(prefName))
             {
-                preferences.remove(pref);
+                prefs2.remove(pref);
                 return true;
             }
         }
         return false;
     }
     
-    private boolean updateNumericPref(String prefName, String param, int max, PortletDefinition
portlet)
+    private boolean updateNumericPref(String prefName, String param, int max, Preferences
prefs)
     {
         if (!isEmpty(param))
         {
@@ -642,7 +659,7 @@
             }
             if (val &gt; max)
                 return false;
-            Preference pref = (Preference) portlet.getPortletPreferences().getPortletPreference(prefName);
+            Preference pref = (Preference) prefs.getPortletPreference(prefName);
             List&lt;String&gt; values = pref.getValues();
             if(!values.get(0).equals(param))
             {

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/BreadcrumbMenu.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/BreadcrumbMenu.java?rev=884255&amp;r1=884254&amp;r2=884255&amp;view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/BreadcrumbMenu.java
(original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/BreadcrumbMenu.java
Wed Nov 25 20:36:43 2009
@@ -79,15 +79,18 @@
             Locale preferredLocale = rc.getLocale();
             PortalSiteRequestContext siteRequestContext = (PortalSiteRequestContext)rc.getAttribute(PORTAL_SITE_REQUEST_CONTEXT_ATTR_KEY);
             Menu breadcrumbsMenu = siteRequestContext.getMenu("breadcrumbs");
-            List&lt;MenuElement&gt; breadcrumbsMenuElements = breadcrumbsMenu.getElements();
-            for (MenuElement breadcrumbMenuElement : breadcrumbsMenuElements)
+            if (breadcrumbsMenu != null)
             {
-                if (breadcrumbMenuElement instanceof MenuOption)
+                List&lt;MenuElement&gt; breadcrumbsMenuElements = breadcrumbsMenu.getElements();
+                for (MenuElement breadcrumbMenuElement : breadcrumbsMenuElements)
                 {
-                    MenuOption breadcrumbMenuOption = (MenuOption)breadcrumbMenuElement;
-                    String title = breadcrumbMenuOption.getTitle(preferredLocale);
-                    String url = admin.getPortalURL(request, response, breadcrumbMenuOption.getUrl());
-                    breadcrumbs.add(new BreadcrumbMenuItem(title, url));
+                    if (breadcrumbMenuElement instanceof MenuOption)
+                    {
+                        MenuOption breadcrumbMenuOption = (MenuOption)breadcrumbMenuElement;
+                        String title = breadcrumbMenuOption.getTitle(preferredLocale);
+                        String url = admin.getPortalURL(request, response, breadcrumbMenuOption.getUrl());
+                        breadcrumbs.add(new BreadcrumbMenuItem(title, url));
+                    }
                 }
             }
         }

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/selectors/category-edit-selector.vm
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/selectors/category-edit-selector.vm?rev=884255&amp;r1=884254&amp;r2=884255&amp;view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/selectors/category-edit-selector.vm
(original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/selectors/category-edit-selector.vm
Wed Nov 25 20:36:43 2009
@@ -183,7 +183,7 @@
         }
         //delete jsCategories;
         jsCategories = temp;
-        catList.remove(catList.selectedIndex);
+        catList.remove(catList.selectedIndex);        
     }
     
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884254 - in /portals/jetspeed-2/portal/trunk: components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/ components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/ components/jetspeed-registry/src/main/...</title>
<author><name>taylor@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c20091125203531.D54B923888C2@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091125203531-D54B923888C2@eris-apache-org%3e</id>
<updated>2009-11-25T20:35:31Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: taylor
Date: Wed Nov 25 20:35:29 2009
New Revision: 884254

URL: http://svn.apache.org/viewvc?rev=884254&amp;view=rev
Log:
https://issues.apache.org/jira/browse/JS2-1085
A Bug surfaced in Category Portlet Selector when storing defaults, the selector threw an NPE
during store to persistent preferences. Discovered that the selector was still coded against
2.1.3 apis, and needed to be updated. Then discovered the PortletDefinitionImpl never keeps
a copy of the Preferences collection, but always delegates to the Preferences Provider to
retrieve preferences, and then wrappers the result from the provider with every accessor call.
The selector was often dereferencing the prefs collection. This should not be a problem in
a normal transactional environment... For now, the problem can be avoided by only dereferencing
once, making manipulations to the held Preferences, and then 'committing' with a new storeDefaults
api which takes a second Preferences handle. Also got bogged down in an OJB debugging session
that turned out to be a simple typo in the OJB mapping file (username is not a primary key(!)).


Modified:
    portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/registry_repository.xml
    portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesServiceImpl.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletregistry/PersistenceBrokerPortletRegistry.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionImpl.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletpreferences/TestPortletPreferencesProvider.java
    portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesProvider.java

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/registry_repository.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/registry_repository.xml?rev=884254&amp;r1=884253&amp;r2=884254&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/registry_repository.xml
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/registry_repository.xml
Wed Nov 25 20:35:29 2009
@@ -959,8 +959,8 @@
           name="userName"
           column="USER_NAME"
           jdbc-type="VARCHAR"
-          nullable="false"
-          primarykey="true"
+          nullable="true"
+          primarykey="false"
           length="80"
       &gt;
       &lt;/field-descriptor&gt;
@@ -984,6 +984,7 @@
       &lt;collection-descriptor
           name="values"
           element-class-ref="org.apache.jetspeed.components.portletpreferences.DatabasePreferenceValue"
+		  collection-class="org.apache.jetspeed.util.ojb.CollectionUtils$SynchronizedRemovalAwareList"
         
           auto-retrieve="true"
           auto-update="object"
           auto-delete="object"

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesServiceImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesServiceImpl.java?rev=884254&amp;r1=884253&amp;r2=884254&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesServiceImpl.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesServiceImpl.java
Wed Nov 25 20:35:29 2009
@@ -290,7 +290,8 @@
                 }
                 else
                 {
-                    updates.add(preference);
+                    if (isModified(preference, found))                    
+                        updates.add(preference);
                 }
                 mergeMap.put(preference.getName(), preference); 
                 
@@ -363,7 +364,7 @@
         return portletFactory.getPreferencesValidator((org.apache.jetspeed.om.portlet.PortletDefinition)pd);
     }
 
-    private String getPorletPreferenceKey(String applicationName, String portletName)
+    private String getPortletPreferenceKey(String applicationName, String portletName)
     {
         return DISCRIMINATOR_PORTLET + KEY_SEPARATOR + applicationName + KEY_SEPARATOR +
portletName;        
     }
@@ -400,7 +401,7 @@
             if (preference.getPortletName().equals(previousPortletName))
             {
                 map = new JetspeedPreferencesMap();
-                String defaultsCacheKey = getPorletPreferenceKey(portletApplicationName,
preference.getPortletName());                
+                String defaultsCacheKey = getPortletPreferenceKey(portletApplicationName,
preference.getPortletName());                
                 preferenceCache.put(preferenceCache.createElement(defaultsCacheKey, map));
                 previousPortletName = preference.getPortletName();
             }
@@ -466,44 +467,22 @@
     {
         for (org.apache.jetspeed.om.portlet.PortletDefinition pd : app.getPortlets())
         {
-            storeDefaults(pd);
+            storeDefaults(pd, (Preferences)null);
         }
     }
     
     /**
      * Jetspeed: PortletPreferencesProvider
      */    
-    public void storeDefaults(org.apache.jetspeed.om.portlet.PortletDefinition pd)
+    public void storeDefaults(org.apache.jetspeed.om.portlet.PortletDefinition pd, Preferences
newprefs)
     {
-        Preferences preferences = pd.getDescriptorPreferences();
-        String defaultsCacheKey = getPorletPreferenceKey(pd.getApplication().getName(), pd.getPortletName());
           
-        JetspeedPreferencesMap map = new JetspeedPreferencesMap(); 
+        Preferences preferences = (newprefs == null) ? pd.getDescriptorPreferences() : newprefs;

+        JetspeedPreferencesMap map = new JetspeedPreferencesMap();
         for (Preference preference : preferences.getPortletPreferences())
         {
-            DatabasePreference dbPref = new DatabasePreference();
-            dbPref.setDtype(DISCRIMINATOR_PORTLET);
-            dbPref.setApplicationName(pd.getApplication().getName());
-            dbPref.setPortletName(pd.getPortletName());
-            dbPref.setEntityId(EMPTY_VALUE);
-            dbPref.setUserName(EMPTY_VALUE);
-            dbPref.setName(preference.getName());
-            dbPref.setReadOnly(preference.isReadOnly());
-            short index = 0;
-            for (String value : preference.getValues())
-            {
-                DatabasePreferenceValue dbValue = new DatabasePreferenceValue();
-                dbValue.setIndex(index);
-                dbValue.setValue(value);
-                dbPref.getPreferenceValues().add(dbValue);
-                index++;
-                
-            }                       
-            JetspeedPreferenceImpl cached = new JetspeedPreferenceImpl(dbPref.getName(),
dbPref.getValues());
-            cached.setReadOnly(dbPref.isReadOnly());
-            map.put(preference.getName(), cached);
-            getPersistenceBrokerTemplate().store(dbPref);
+            map.put(preference.getName(), new JetspeedPreferenceImpl(preference.getName(),
preference.getValues().toArray(new String[preference.getValues().size()])));
         }
-        preferenceCache.put(preferenceCache.createElement(defaultsCacheKey, map));      
             
+        this.storePortletPreference(pd, null, null, map);
     }
 
     public void storeDefaults(org.apache.jetspeed.om.portlet.PortletDefinition pd, Preference
preference)
@@ -550,7 +529,7 @@
 
         JetspeedPreferenceImpl cached = new JetspeedPreferenceImpl(preferenceName, dbPref.getValues());
         cached.setReadOnly(dbPref.isReadOnly());
-        String defaultsCacheKey = getPorletPreferenceKey(appName, portletName);
+        String defaultsCacheKey = getPortletPreferenceKey(appName, portletName);
         CacheElement cacheElement = preferenceCache.get(defaultsCacheKey);
         JetspeedPreferencesMap map = (cacheElement != null ? (JetspeedPreferencesMap) cacheElement.getContent()
: new JetspeedPreferencesMap());
         map.put(preferenceName, cached);
@@ -622,7 +601,7 @@
         c.addEqualTo("portletName", pd.getPortletName());                
         QueryByCriteria query = QueryFactory.newQuery(DatabasePreference.class, c);
         getPersistenceBrokerTemplate().deleteByQuery(query);
-        String defaultsCacheKey = getPorletPreferenceKey(pd.getApplication().getName(), pd.getPortletName());
           
+        String defaultsCacheKey = getPortletPreferenceKey(pd.getApplication().getName(),
pd.getPortletName());            
         preferenceCache.remove(defaultsCacheKey);
     }
 
@@ -636,7 +615,7 @@
         QueryByCriteria query = QueryFactory.newQuery(DatabasePreference.class, c);
         getPersistenceBrokerTemplate().deleteByQuery(query);
         
-        String defaultsCacheKey = getPorletPreferenceKey(pd.getApplication().getName(), pd.getPortletName());
+        String defaultsCacheKey = getPortletPreferenceKey(pd.getApplication().getName(),
pd.getPortletName());
         JetspeedPreferencesMap map = (JetspeedPreferencesMap) preferenceCache.get(defaultsCacheKey).getContent();
         map.remove(preferenceName);
         preferenceCache.put(preferenceCache.createElement(defaultsCacheKey, map));
@@ -654,7 +633,7 @@
         getPersistenceBrokerTemplate().deleteByQuery(query);
         for (PortletDefinition pd : app.getPortlets())
         {
-            String defaultsCacheKey = getPorletPreferenceKey(pd.getApplication().getName(),
pd.getPortletName());            
+            String defaultsCacheKey = getPortletPreferenceKey(pd.getApplication().getName(),
pd.getPortletName());            
             preferenceCache.remove(defaultsCacheKey);            
         }
     }
@@ -666,7 +645,7 @@
     {
         String appName = pd.getApplication().getName();
         String portletName = pd.getPortletName();        
-        String defaultsCacheKey = getPorletPreferenceKey(appName, portletName);
+        String defaultsCacheKey = getPortletPreferenceKey(appName, portletName);
         JetspeedPreferencesMap defaultsMap;         
         // first search in cache        
         CacheElement cachedDefaults = preferenceCache.get(defaultsCacheKey);
@@ -784,6 +763,22 @@
         storePortletPreference(appName, portletName, windowId, userName, map);
     }
 
+    private boolean isModified(DatabasePreference dbPref, PortletPreference pref)
+    {
+        String[] dbValues = dbPref.getValues();
+        String[] values = pref.getValues();
+        if (dbValues == null || values == null)
+            return true;
+        if (dbValues.length != values.length)
+            return true;
+        for (int ix = 0; ix &lt; values.length; ix++)
+        {
+            if (!values[ix].equals(dbValues[ix]))
+                return true;
+        }
+        return false;
+    }
+    
     /* (non-Javadoc)
      * @see org.apache.jetspeed.components.portletpreferences.PortletPreferencesProvider#storePortletPreference(java.lang.String,
java.lang.String, java.lang.String, java.lang.String, java.util.Map)
      */
@@ -791,11 +786,9 @@
     {
         // always read in to get a fresh copy for merge
         Criteria c = new Criteria();
-        c.addEqualTo("dtype", DISCRIMINATOR_USER);
+        c.addEqualTo("dtype", DISCRIMINATOR_PORTLET);
         c.addEqualTo("applicationName", appName);
-        c.addEqualTo("portletName", portletName);
-        c.addEqualTo("entityId", windowId);
-        c.addEqualTo("userName", userName);
+        c.addEqualTo("portletName", portletName);         
         QueryByCriteria query = QueryFactory.newQuery(DatabasePreference.class, c);
         Map&lt;String, DatabasePreference&gt; mergeMap = new HashMap&lt;String, DatabasePreference&gt;();
         List&lt;DatabasePreference&gt; deletes = new LinkedList&lt;DatabasePreference&gt;();
@@ -812,7 +805,8 @@
             }
             else
             {
-                updates.add(preference);
+                if (isModified(preference, found))
+                    updates.add(preference);
             }
             mergeMap.put(preference.getName(), preference);
         }
@@ -832,7 +826,7 @@
         for (PortletPreference preference : inserts)
         {
             DatabasePreference dbPref = new DatabasePreference();
-            dbPref.setDtype(DISCRIMINATOR_USER);
+            dbPref.setDtype(DISCRIMINATOR_PORTLET);
             dbPref.setApplicationName(appName);
             dbPref.setPortletName(portletName);
             dbPref.setEntityId(windowId);
@@ -866,7 +860,7 @@
             getPersistenceBrokerTemplate().store(dbPref);
         }
         // remove from cache to send distributed notification
-        String cacheKey = getUserPreferenceKey(appName, portletName, windowId, userName);
+        String cacheKey = this.getPortletPreferenceKey(appName, portletName); //getUserPreferenceKey(appName,
portletName, windowId, userName);
         preferenceCache.remove(cacheKey);
     }
 

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletregistry/PersistenceBrokerPortletRegistry.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletregistry/PersistenceBrokerPortletRegistry.java?rev=884254&amp;r1=884253&amp;r2=884254&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletregistry/PersistenceBrokerPortletRegistry.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletregistry/PersistenceBrokerPortletRegistry.java
Wed Nov 25 20:35:29 2009
@@ -37,6 +37,7 @@
 import org.apache.jetspeed.om.portlet.PortletApplication;
 import org.apache.jetspeed.om.portlet.PortletDefinition;
 import org.apache.jetspeed.om.portlet.Preference;
+import org.apache.jetspeed.om.portlet.Preferences;
 import org.apache.jetspeed.om.portlet.SecurityRoleRef;
 import org.apache.jetspeed.om.portlet.Supports;
 import org.apache.jetspeed.om.portlet.impl.PortletApplicationDefinitionImpl;
@@ -470,7 +471,7 @@
         }
         try
         {
-            preferenceService.storeDefaults(copy);
+            preferenceService.storeDefaults(copy, (Preferences)null);
         }
         catch (Throwable e)
         {

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionImpl.java?rev=884254&amp;r1=884253&amp;r2=884254&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionImpl.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionImpl.java
Wed Nov 25 20:35:29 2009
@@ -142,7 +142,6 @@
 
     public Preferences getPortletPreferences()
     {
-        //System.out.println("&gt;&gt;&gt; Getting prefs ");
         if (PortletDefinitionImpl.portletPreferencesProvider == null)
         {
             return new PreferencesImpl();            

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletpreferences/TestPortletPreferencesProvider.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletpreferences/TestPortletPreferencesProvider.java?rev=884254&amp;r1=884253&amp;r2=884254&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletpreferences/TestPortletPreferencesProvider.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletpreferences/TestPortletPreferencesProvider.java
Wed Nov 25 20:35:29 2009
@@ -17,6 +17,7 @@
 package org.apache.jetspeed.components.portletpreferences;
 
 import org.apache.jetspeed.Jetspeed;
+import org.apache.jetspeed.components.portletregistry.PortletRegistry;
 import org.apache.jetspeed.components.util.DatasourceEnabledSpringTestCase;
 import org.apache.jetspeed.engine.MockJetspeedEngine;
 
@@ -25,8 +26,8 @@
 {
 
     private static MockJetspeedEngine mockEngine = new MockJetspeedEngine();
-	private PortletPreferencesProvider prefs;
-	
+	private PortletPreferencesProvider prefsProvider;
+	private PortletRegistry registry;
 	
 	@Override
 	protected String[] getConfigurations() {
@@ -39,10 +40,12 @@
         super.setUp();
         mockEngine.setComponentManager(scm);
         Jetspeed.setEngine(mockEngine);
-        this.prefs = (PortletPreferencesProvider) scm.getComponent("org.apache.jetspeed.components.portletpreferences.PortletPreferencesProvider");
+        this.prefsProvider = (PortletPreferencesProvider) scm.getComponent("org.apache.jetspeed.components.portletpreferences.PortletPreferencesProvider");
         PortletPreferencesProvider temp = (PortletPreferencesProvider) scm.getComponent("portletPreferencesProvider");
         System.out.println("temp = " + temp);
-        System.out.println("prefs = " + prefs);        
+        System.out.println("prefs = " + prefsProvider);
+        this.registry = (PortletRegistry) scm.getComponent("portletRegistry");
+
 //        teardownTestData();
 //        setupTestData();
     }
@@ -53,10 +56,26 @@
         Jetspeed.setEngine(null);
         super.tearDown();
     }
-    
+
     public void testEntities() throws Exception
-    {
-    	System.out.println("Testing baby");    	
-    }
+    {}
+    
+//    public void testPrefs() throws Exception
+//    {
+//        System.out.println("Testing prefs");
+//        PortletDefinition pd = registry.getPortletDefinitionByUniqueName("j2-admin::CategoryPortletSelector");
+//        PortletDefinitionImpl.setPortletPreferencesProvider(prefsProvider);
+//        assertNotNull(pd);
+//        Preferences prefs = pd.getPortletPreferences();
+//        assertNotNull(prefs);
+//        Preference pref = prefs.getPortletPreference("Keywords:Fun");
+//        assertNotNull(pref);
+//        List&lt;String&gt; values = pref.getValues();
+//        assert(values.size() &gt; 0);
+//        String oldValue = values.get(0); 
+//        oldValue += ",UPDATED";
+//        values.set(0, oldValue);
+//        prefsProvider.storeDefaults(pd, prefs);
+//    }
     
 }

Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesProvider.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesProvider.java?rev=884254&amp;r1=884253&amp;r2=884254&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesProvider.java
(original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesProvider.java
Wed Nov 25 20:35:29 2009
@@ -24,6 +24,7 @@
 import org.apache.jetspeed.om.portlet.PortletApplication;
 import org.apache.jetspeed.om.portlet.PortletDefinition;
 import org.apache.jetspeed.om.portlet.Preference;
+import org.apache.jetspeed.om.portlet.Preferences;
 import org.apache.pluto.container.PortletPreference;
 import org.apache.pluto.container.PortletPreferencesService;
 
@@ -58,7 +59,7 @@
      * Store the default preferences by descriptor preferences for a given portlet definition
      * @param pd
      */
-    public void storeDefaults(PortletDefinition pd);
+    public void storeDefaults(PortletDefinition pd, Preferences prefs);
     
     /**
      * Store the default preferences by input preference for a given portlet definition



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884170 - /portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml</title>
<author><name>woonsan@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c20091125161015.658B523889B8@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091125161015-658B523889B8@eris-apache-org%3e</id>
<updated>2009-11-25T16:10:15Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: woonsan
Date: Wed Nov 25 16:10:14 2009
New Revision: 884170

URL: http://svn.apache.org/viewvc?rev=884170&amp;view=rev
Log:
APA-24: Adding proxy host and port preferences

Modified:
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml?rev=884170&amp;r1=884169&amp;r2=884170&amp;view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml Wed
Nov 25 16:10:14 2009
@@ -1661,6 +1661,14 @@
         &lt;value&gt;http://www.nytimes.com&lt;/value&gt;
       &lt;/preference&gt;
       &lt;preference&gt;
+        &lt;name&gt;PROXYHOST&lt;/name&gt;
+        &lt;value&gt;&lt;/value&gt;
+      &lt;/preference&gt;
+      &lt;preference&gt;
+        &lt;name&gt;PROXYPORT&lt;/name&gt;
+        &lt;value&gt;&lt;/value&gt;
+      &lt;/preference&gt;
+      &lt;preference&gt;
         &lt;name&gt;sso.type&lt;/name&gt;
         &lt;value&gt;form&lt;/value&gt;
       &lt;/preference&gt;



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: Progress...</title>
<author><name>Woonsan Ko &lt;woon_san@yahoo.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c91799.85067.qm@web51102.mail.re2.yahoo.com%3e"/>
<id>urn:uuid:%3c91799-85067-qm@web51102-mail-re2-yahoo-com%3e</id>
<updated>2009-11-25T10:25:21Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Hi there,

I've committed changes to support portlet preview mode in jetspeed-2 and an example, PickANumberPortlet,
to apa-demo.
A portlet can implement "preview" mode by itself. In this case, Jetspeed will invoke the portlet
to render itself.
If a portlet does not implement "preview" mode but the portlet defines a metadata in jetspeed-portlet.xml
like the following example, Jetspeed will render the preview image instead.

    &lt;portlet id="HelloPortlet"&gt;
        &lt;portlet-name&gt;HelloPortlet&lt;/portlet-name&gt;
        &lt;snip/&gt;
        &lt;js:metadata name="portlet.preview.image"&gt;/demo/images/preview/hello.png&lt;/js:metadata&gt;
    &lt;/portlet&gt;

When those are not available, Jetspeed will render "preview not available" image instead.
Client code can request the preview rendering by invoking portlet pipeline urls like the following
example:

http://localhost:18080/collab/portlet/?entity=demo::PickANumberPortlet&amp;portlet=demo::PickANumberPortlet&amp;mode=preview

As you might know, "mode" parameter is added. So, you can use other portlet modes as well
such as "help" or "view".


Kind regards,

Woonsan




----- Original Message ----
From: Woonsan Ko &lt;woon_san@yahoo.com&gt;
To: Jetspeed Developers List &lt;jetspeed-dev@portals.apache.org&gt;
Sent: Fri, November 20, 2009 8:27:05 PM
Subject: Re: Progress...

Hi Gonzalo,

--- On Fri, 11/20/09, Gonzalo Aguilar Delgado &lt;gaguilar@aguilardelgado.com&gt; wrote:

&gt; From: Gonzalo Aguilar Delgado &lt;gaguilar@aguilardelgado.com&gt;
&gt; Subject: Re: Progress...
&gt; To: "Jetspeed Developers List" &lt;jetspeed-dev@portals.apache.org&gt;
&gt; Date: Friday, November 20, 2009, 6:42 PM
&gt; 
&gt; 
&gt; &gt; I've just committed something to separate YUI
&gt; instantiation and event handlers from the portal.js. Event
&gt; handlers for toolbox portlet are now defined in
&gt; toolbox.jsp.
&gt; &gt; Also, the ids are not duplicated any more by using
&gt; portlet namespace and portlet unique names.
&gt; &gt; By the way, I see the following problems now:
&gt; &gt; - The portlets list table contains table element for
&gt; each portlet item.
&gt; &gt;   I think it should have tr and td
&gt; before adding the table element.
&gt; &gt;   FYI, we cannot leverage data table
&gt; with YUI3 yet because it's not ported yet.
&gt; 
&gt; I didn't find anyway to handle this, that's why I left this
&gt; way for now.
&gt; I don't want to forget add tr's and td's.
&gt; But I think it will be better create a yui widget that will
&gt; handle all
&gt; for us. Even preview think will be a good think
&gt; to be handled by this widget. 
&gt; 
&gt; Is possible create widgets in YUI?

Yes, I think it would be easy to add widgets.
However, I've just committed one more. I replaced the container panel tag by div instead of
table, and I wrapped the portlet item table by div. So, we don't have to consider tr and td
any more. I think it would be okay for now before we have better widgets.

&gt; 
&gt; 
&gt; &gt; - When search button is clicked, it should remove
&gt; existing rows.
&gt; 
&gt; But they will be loaded again when click on panel right?

Yes. I think we need to do like that. Please review my recent changes.

&gt; 
&gt; &gt; - Preview link
&gt; 
&gt; I think this one will be difficult but...
&gt; 

As I mentioned in other email, I think it would be better to support 'preview' custom mode
and invoke a portlet with 'preview' custom mode when we need preview page for the portlet.
If a portlet implements 'preview' custom mode, then we can just render the output in an area.
Otherwise, we can do some default handling. For example, we can define a metadata like 'thumbnail'
in jetspeed-portlet.xml...

Kind regards,

Woonsan


      

---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884017 - in /portals/jetspeed-2/portal/trunk: applications/jetspeed/src/main/webapp/WEB-INF/ applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/ applications/jetspeed/src/main/webapp/decorations/portlet/ components/jetspeed-portal/src...</title>
<author><name>woonsan@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c20091125101908.9C3ED23888C5@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091125101908-9C3ED23888C5@eris-apache-org%3e</id>
<updated>2009-11-25T10:18:30Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: woonsan
Date: Wed Nov 25 10:17:40 2009
New Revision: 884017

URL: http://svn.apache.org/viewvc?rev=884017&amp;view=rev
Log:
JS2-1086: Reverting the changes in the portlet decorator templates which filter out 'preview'
decoration action. Instead, the filtering is done in the CustomDecoratorActionsFactory.

Modified:
    portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetspeed_macros.vm
    portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui-portlet.jsp
    portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/portlet/decorations_portlet_init.jsp
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/CustomDecoratorActionsFactory.java

Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetspeed_macros.vm
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetspeed_macros.vm?rev=884017&amp;r1=884016&amp;r2=884017&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetspeed_macros.vm
(original)
+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetspeed_macros.vm
Wed Nov 25 10:17:40 2009
@@ -152,13 +152,11 @@
 #macro(PortletActionBar $_decoration)
  #set($_actions = $_decoration.actions)
   
-  &lt;div class="PActionBar"&gt;
+ &lt;div class="PActionBar"&gt;
     #foreach ($_action in $_actions)
-      #if (${_action.ActionName} != "preview")
-        &lt;a href="${_action.Action}" title="${_action.Name}" class="action portlet-action"
#if($_action.target)target="$_action.target"#end&gt;&lt;img src="$request.contextPath/${_action.link}"
alt="${_action.Alt}" border="0" /&gt;&lt;/a&gt;
-      #end
+     &lt;a href="${_action.Action}" title="${_action.Name}" class="action portlet-action"
#if($_action.target)target="$_action.target"#end&gt;&lt;img src="$request.contextPath/${_action.link}"
alt="${_action.Alt}" border="0" /&gt;&lt;/a&gt;
     #end    
-  &lt;/div&gt;
+ &lt;/div&gt;
 #end
 
 

Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui-portlet.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui-portlet.jsp?rev=884017&amp;r1=884016&amp;r2=884017&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui-portlet.jsp
(original)
+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui-portlet.jsp
Wed Nov 25 10:17:40 2009
@@ -30,46 +30,43 @@
 &lt;%@ page import="org.apache.jetspeed.decoration.DecoratorAction" %&gt;
 &lt;%@ page import="org.apache.jetspeed.PortalReservedParameters" %&gt;
 &lt;%
-	String content = (String)request.getAttribute("content");
-	String decorator = (String)request.getAttribute("decorator");
-	ContentFragment fragment = (ContentFragment)request.getAttribute("fragment");
-	LayoutCoordinate coordinate = (LayoutCoordinate)request.getAttribute("coordinate");
-	String title = "";
-	boolean showTitle = fragment.getDecoration().getTitleOption() == Decoration.TitleOption.SHOW;
	
-	if (showTitle &amp;&amp; fragment.getPortletContent() != null)
-	    title = fragment.getPortletContent().getTitle();
+    String content = (String)request.getAttribute("content");
+    String decorator = (String)request.getAttribute("decorator");
+    ContentFragment fragment = (ContentFragment)request.getAttribute("fragment");
+    LayoutCoordinate coordinate = (LayoutCoordinate)request.getAttribute("coordinate");
+    String title = "";
+    boolean showTitle = fragment.getDecoration().getTitleOption() == Decoration.TitleOption.SHOW;
  
+    if (showTitle &amp;&amp; fragment.getPortletContent() != null)
+        title = fragment.getPortletContent().getTitle();
 %&gt;
-	&lt;div class="portal-layout-cell" id="&lt;%=fragment.getId()%&gt;" name="&lt;%=fragment.getName()%&gt;"
column="&lt;%=coordinate.getX()%&gt;" row="&lt;%=coordinate.getY()%&gt;"&gt;
-		&lt;div class="portlet &lt;%=decorator%&gt;"&gt;
-		    &lt;div class="PTitle" &gt;
-	          &lt;div class="PTitleContent"&gt;&lt;%=title%&gt;&lt;/div&gt;
-		  	    &lt;div class="PActionBar"&gt;
+    &lt;div class="portal-layout-cell" id="&lt;%=fragment.getId()%&gt;" name="&lt;%=fragment.getName()%&gt;"
column="&lt;%=coordinate.getX()%&gt;" row="&lt;%=coordinate.getY()%&gt;"&gt;
+        &lt;div class="portlet &lt;%=decorator%&gt;"&gt;
+            &lt;div class="PTitle" &gt;
+              &lt;div class="PTitleContent"&gt;&lt;%=title%&gt;&lt;/div&gt;
+                &lt;div class="PActionBar"&gt;
 &lt;%
-					Decoration.ActionsOption option = fragment.getDecoration().getActionsOption(); 	
-					if (option != Decoration.ActionsOption.HIDE) // TODO: HOVER, DROP DOWN not yet implemented
-					{
-						for(DecoratorAction action : (List&lt;DecoratorAction&gt;)fragment.getDecoration().getActions())
-					    {			        
-                            if ("preview".equals(action.getActionName()))
-                                continue;
-                            
-					        String target = "target='"+ action.getTarget() + "'";
-					        if (action.getTarget() == null)
-					            target = "";
- %&gt;			    
-			     &lt;a href="&lt;%=action.getAction()%&gt;" title="&lt;%=action.getName()%&gt;" class="action
portlet-action" &lt;%=target%&gt;&gt;&lt;img src="&lt;%=request.getContextPath()%&gt;/&lt;%=action.getLink()%&gt;"
alt="&lt;%=action.getAlt()%&gt;" border="0" /&gt;&lt;/a&gt;
-&lt;%                  } // for loop				
+                    Decoration.ActionsOption option = fragment.getDecoration().getActionsOption();
 
+                    if (option != Decoration.ActionsOption.HIDE) // TODO: HOVER, DROP DOWN
not yet implemented
+                    {
+                        for(DecoratorAction action : (List&lt;DecoratorAction&gt;)fragment.getDecoration().getActions())
+                        {                   
+                            String target = "target='"+ action.getTarget() + "'";
+                            if (action.getTarget() == null)
+                                target = "";
+ %&gt;             
+                 &lt;a href="&lt;%=action.getAction()%&gt;" title="&lt;%=action.getName()%&gt;"
class="action portlet-action" &lt;%=target%&gt;&gt;&lt;img src="&lt;%=request.getContextPath()%&gt;/&lt;%=action.getLink()%&gt;"
alt="&lt;%=action.getAlt()%&gt;" border="0" /&gt;&lt;/a&gt;
+&lt;%                  } // for loop               
 // FIXME: integrate close into standard actions, use security constraints on close action
 if (request.getUserPrincipal() != null &amp;&amp; fragment.getDecoration().getActions().size()
&gt; 0)
 {
 %&gt;
-				 &lt;span style='cursor: pointer; z-index: 1000;' id='jetspeed-close-&lt;%=fragment.getId()%&gt;'
title="close" class="portlet-action-close"&gt;&lt;img src="&lt;%=request.getContextPath()%&gt;/decorations/portlet/jetspeed/images/close.gif"
alt="Close" border="0" /&gt;&lt;/span&gt;				 
+                 &lt;span style='cursor: pointer; z-index: 1000;' id='jetspeed-close-&lt;%=fragment.getId()%&gt;'
title="close" class="portlet-action-close"&gt;&lt;img src="&lt;%=request.getContextPath()%&gt;/decorations/portlet/jetspeed/images/close.gif"
alt="Close" border="0" /&gt;&lt;/span&gt;              
 &lt;% }  } %&gt;
-			    &lt;/div&gt;
-		      &lt;/div&gt;
-		       &lt;div class="PContentBorder"&gt;
-		         &lt;div class="PContent"&gt;&lt;%=content%&gt;&lt;/div&gt;
-		       &lt;/div&gt;
-		    &lt;/div&gt;
+                &lt;/div&gt;
+              &lt;/div&gt;
+               &lt;div class="PContentBorder"&gt;
+                 &lt;div class="PContent"&gt;&lt;%=content%&gt;&lt;/div&gt;
+               &lt;/div&gt;
+            &lt;/div&gt;
           &lt;/div&gt;
      

Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/portlet/decorations_portlet_init.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/portlet/decorations_portlet_init.jsp?rev=884017&amp;r1=884016&amp;r2=884017&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/portlet/decorations_portlet_init.jsp
(original)
+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/portlet/decorations_portlet_init.jsp
Wed Nov 25 10:17:40 2009
@@ -26,9 +26,9 @@
 &lt;portlet:defineObjects/&gt;
 
 &lt;%
-	/**
-	 * @author &lt;a href="mailto:kmoh.raj@gmail.com"&gt;Mohan Kannapareddy&lt;/a&gt;
-	 */
+    /**
+     * @author &lt;a href="mailto:kmoh.raj@gmail.com"&gt;Mohan Kannapareddy&lt;/a&gt;
+     */
 
   int DEFAULT_SCOPE = PageContext.PAGE_SCOPE;
 
@@ -54,14 +54,12 @@
   
                         &lt;div class="PActionBar"&gt; &lt;!-- B: div portal-page-actions
--&gt; 
                           &lt;c:forEach var="_action" items="${actions}"&gt;
-                            &lt;c:if test="${_action.actionName != 'preview'}"&gt;
-                              &lt;a href="&lt;c:out value='${_action.action}'/&gt;" 
-                                title="&lt;c:out value='${_action.name}'/&gt;" 
-                                class="action portlet-action"
-                                &lt;c:if test="${_action.target}"&gt; target="&lt;c:out value='${_action.target}'/&gt;"&lt;/c:if&gt;&gt;
-                                &lt;img src="&lt;c:out value='${requestScope.cPath}/${_action.link}'/&gt;"
alt="&lt;c:out value='${_action.alt}'/&gt;" border="0" /&gt;
-                              &lt;/a&gt;
-                            &lt;/c:if&gt;
+                            &lt;a href="&lt;c:out value='${_action.action}'/&gt;" 
+                               title="&lt;c:out value='${_action.name}'/&gt;" 
+                               class="action portlet-action"
+                               &lt;c:if test="${_action.target}"&gt; target="&lt;c:out value='${_action.target}'/&gt;"&lt;/c:if&gt;&gt;
+                              &lt;img src="&lt;c:out value='${requestScope.cPath}/${_action.link}'/&gt;"
alt="&lt;c:out value='${_action.alt}'/&gt;" border="0" /&gt;
+                            &lt;/a&gt;
                           &lt;/c:forEach&gt;
                         &lt;/div&gt; &lt;!-- E: div portal-page-actions --&gt; 
   

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/CustomDecoratorActionsFactory.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/CustomDecoratorActionsFactory.java?rev=884017&amp;r1=884016&amp;r2=884017&amp;view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/CustomDecoratorActionsFactory.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/CustomDecoratorActionsFactory.java
Wed Nov 25 10:17:40 2009
@@ -48,7 +48,6 @@
         list.add(JetspeedActions.ABOUT_MODE);
         list.add(JetspeedActions.CONFIG_MODE);
         list.add(JetspeedActions.EDIT_DEFAULTS_MODE);
-        list.add(JetspeedActions.PREVIEW_MODE);
         list.add(JetspeedActions.PRINT_MODE);
         list.addAll(JetspeedActions.getStandardWindowStates());
         list.add(JetspeedActions.SOLO_STATE);



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org



</pre>
</div>
</content>
</entry>
<entry>
<title>Re: BIRT and portal</title>
<author><name>Gonzalo Aguilar Delgado &lt;gaguilar@aguilardelgado.com&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/portals-jetspeed-dev/200911.mbox/%3c1259143702.9232.15.camel@azul1%3e"/>
<id>urn:uuid:%3c1259143702-9232-15-camel@azul1%3e</id>
<updated>2009-11-25T10:08:22Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Hi Ate, 

I'm sorry for my late answer but I was really busy this week...

I think you should look for a BI environment...

Maybe you will want to take a look to pentaho (http://www.pentaho.com/)

I brought some books (I'm waiting for them) about implementation because
this makes more sense for my
objectives. And maybe yours...

With pentaho you can build the BI environment in the back and server
reports with
jetspeed as needed. 

I'm looking for this solution to see if Jetspeed connections make sense.

I'm not sure about the right way to go right now but your project looks
big enough
to take a look around before choosing way...





&gt; 
&gt; Well, sure :)
&gt; 
&gt; As I mentioned before, we have a request to provide a BIRT reporting *service* with Jetspeed
so to bring standard reporting capabilities 
&gt; accessible from portlets.
&gt; Our goal is to provide both report definition and maintenance features, e.g. through
dedicated admin portlets and a report (configuration) 
&gt; repository, as well as allowing portlets to "serve" such reports.
&gt; Primary (first) target for such reports would be the Jetspeed own configuration, e.g.
like the security data, but as a generic BIRT 
&gt; reporting service and configuration repository it should be extendable and usable for
any (business) application reporting integration.
&gt; Our preference would be to provide this as a "standard" portal and portlets solution,
e.g. even usable for other portals, by hosting this as 
&gt; a "standards" compliant solution at Apache Portals Application, http://portals.apache.org/applications/,
but of course it should work in 
&gt; Jetspeed-2 first and foremost, so this is not yet a strict requirement.
&gt; 
&gt; If you want to help out and collaborate on this or even just provide some valuable input,
that would be much appreciated.
&gt; You can also contact me directly if you'd prefer to discuss this offline first.
&gt; &gt; 
&gt; &gt; Thank you.
&gt; &gt; 
&gt; &gt; 
&gt; 
&gt; 
&gt; ---------------------------------------------------------------------
&gt; To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
&gt; For additional commands, e-mail: jetspeed-dev-help@portals.apache.org
&gt; 


</pre>
</div>
</content>
</entry>
</feed>
