Author: woonsan
Date: Fri Nov 27 14:17:56 2009
New Revision: 884883

URL: http://svn.apache.org/viewvc?rev=884883&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&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<String> 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<String> getValues()
+    {
+        return values;
+    }
+
+    public void setValues(Collection<String> 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&r1=884882&r2=884883&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&r1=884882&r2=884883&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&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<LocalizedFieldBean> localizedFieldBeans;
+    
+    public GenericMetadataBean()
+    {
+        
+    }
+    
+    public GenericMetadataBean(final GenericMetadata metadata)
+    {
+        List<LocalizedFieldBean> localizedFieldBeanList = new 
ArrayList<LocalizedFieldBean>();
+        
+        for (LocalizedField field : metadata.getFields())
+        {
+            localizedFieldBeanList.add(new LocalizedFieldBean(field));
+        }
+        
+        localizedFieldBeans = localizedFieldBeanList;
+    }
+    
+    @XmlElementWrapper(name="fields")
+    @XmlElements(@XmlElement(name="field"))
+    public Collection<LocalizedFieldBean> getLocalizedFieldBeans()
+    {
+        return localizedFieldBeans;
+    }
+    
+    public void setLocalizedFieldBeans(Collection<LocalizedFieldBean> 
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&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&r1=884882&r2=884883&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<DisplayNameBean> displayNameBeans;
     private Collection<DescriptionBean> descriptionBeans;
+    private GenericMetadataBean metadataBean;
+    private Collection<ContainerRuntimeOptionBean> 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<ContainerRuntimeOptionBean> containerRuntimeOptionBeanList = 
new ArrayList<ContainerRuntimeOptionBean>();
+        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<ContainerRuntimeOptionBean> 
getContainerRuntimeOptionBeans()
+    {
+        return containerRuntimeOptionBeans;
+    }
+
+    public void 
setContainerRuntimeOptionBeans(Collection<ContainerRuntimeOptionBean> 
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&r1=884882&r2=884883&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<DisplayNameBean> displayNameBeans;
     private Collection<DescriptionBean> descriptionBeans;
     private Collection<SupportsBean> supportsBeans;
     private Collection<LanguageBean> languageBeans;
+    private GenericMetadataBean metadataBean;
+    private Collection<ContainerRuntimeOptionBean> containerRuntimeOptionBeans;
     
     public PortletDefinitionBean()
     {
@@ -58,6 +62,7 @@
     {
         applicationName = portletDefinition.getApplication().getName();
         portletName = portletDefinition.getPortletName();
+        uniqueName = portletDefinition.getUniqueName();
         portletInfoBean = new 
PortletInfoBean(portletDefinition.getPortletInfo());
         
         ArrayList<DisplayNameBean> displayNameBeanList = new 
ArrayList<DisplayNameBean>();
@@ -87,6 +92,15 @@
             languageBeanList.add(new LanguageBean(language));
         }
         languageBeans = languageBeanList;
+        
+        metadataBean = new 
GenericMetadataBean(portletDefinition.getMetadata());
+        
+        ArrayList<ContainerRuntimeOptionBean> containerRuntimeOptionBeanList = 
new ArrayList<ContainerRuntimeOptionBean>();
+        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<ContainerRuntimeOptionBean> 
getContainerRuntimeOptionBeans()
+    {
+        return containerRuntimeOptionBeans;
+    }
+
+    public void 
setContainerRuntimeOptionBeans(Collection<ContainerRuntimeOptionBean> 
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&r1=884882&r2=884883&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<PathSegment> pathSegments)
     {
+        String applicationName = null;
+        
+        if (pathSegments != null && !pathSegments.isEmpty())
+        {
+            applicationName = pathSegments.get(0).getPath();
+        }
+        
         PortletApplicationBeans paBeans = new PortletApplicationBeans();
         List<PortletApplicationBean> paBeanList = new 
ArrayList<PortletApplicationBean>();
         
-        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<PathSegment> pathSegments)
     {
+        String applicationName = null;
+        String definitionName = null;
+        
+        if (pathSegments != null)
+        {
+            if (pathSegments.size() > 0)
+            {
+                applicationName = pathSegments.get(0).getPath();
+            }
+            
+            if (pathSegments.size() > 1)
+            {
+                definitionName = pathSegments.get(1).getPath();
+            }
+        }
+        
         PortletDefinitionBeans pdBeans = new PortletDefinitionBeans();
         List<PortletDefinitionBean> pdBeanList = new 
ArrayList<PortletDefinitionBean>();
         
-        if (StringUtils.isBlank(uniqueName))
+        if (StringUtils.isBlank(applicationName) && 
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to