Author: woonsan
Date: Fri Dec 4 17:06:33 2009
New Revision: 887270
URL: http://svn.apache.org/viewvc?rev=887270&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&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<T> implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ private Collection<T> collection;
+
+ private int totalSize = -1;
+
+ private int beginIndex = -1;
+
+ public BeanCollection()
+ {
+
+ }
+
+ protected Collection<T> getCollection()
+ {
+ return collection;
+ }
+
+ protected void setCollection(Collection<T> 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&p1=portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletApplicationBeans.java&r1=886744&r2=887270&rev=887270&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<PortletApplicationBean>
{
private static final long serialVersionUID = 1L;
- private Collection<PortletApplicationBean> portletApplicationBeans;
-
- public PortletApplicationBeans()
+ public PortletApplicationBeanCollection()
{
-
+ super();
}
+ @Override
@XmlElements(@XmlElement(name="application"))
- public Collection<PortletApplicationBean> getPortletApplicationBeans()
+ public Collection<PortletApplicationBean> getCollection()
{
- return portletApplicationBeans;
+ return super.getCollection();
}
- public void setPortletApplicationBeans(Collection<PortletApplicationBean>
portletApplicationBeans)
+ public void setPortletApplicationBeans(Collection<PortletApplicationBean>
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&r1=887269&r2=887270&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<LanguageBean> languageBeans;
private GenericMetadataBean metadataBean;
private Collection<ContainerRuntimeOptionBean> containerRuntimeOptionBeans;
+ private Collection<InitParamBean> initParamBeans;
public PortletDefinitionBean()
{
@@ -101,6 +103,13 @@
containerRuntimeOptionBeanList.add(new
ContainerRuntimeOptionBean(containerRuntimeOption));
}
containerRuntimeOptionBeans = containerRuntimeOptionBeanList;
+
+ ArrayList<InitParamBean> initParamBeanList = new
ArrayList<InitParamBean>();
+ 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<InitParamBean> getInitParamBeans()
+ {
+ return initParamBeans;
+ }
+
+ public void setInitParamBeans(Collection<InitParamBean> 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&p1=portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/beans/PortletDefinitionBeans.java&r1=886744&r2=887270&rev=887270&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<PortletDefinitionBean>
{
private static final long serialVersionUID = 1L;
- private Collection<PortletDefinitionBean> portletDefinitionBeans;
-
- public PortletDefinitionBeans()
+ public PortletDefinitionBeanCollection()
{
-
+ super();
}
+ @Override
@XmlElements(@XmlElement(name="definition"))
- public Collection<PortletDefinitionBean> getPortletDefinitionBean()
+ public Collection<PortletDefinitionBean> getCollection()
{
- return portletDefinitionBeans;
+ return super.getCollection();
}
- public void setPortletApplicationBeans(Collection<PortletDefinitionBean>
portletDefinitionBeans)
+ public void setPortletApplicationBeans(Collection<PortletDefinitionBean>
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&r1=887269&r2=887270&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<PathSegment> 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<PortletApplicationBean> paBeanList = new
ArrayList<PortletApplicationBean>();
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<ParsedObject> searchResultList = searchResults.getResults();
+ paBeans.setTotalSize(searchResultList.size());
for (ParsedObject parsedObject : (List<ParsedObject>)
PaginationUtils.subList(searchResultList, beginIndex, maxResults))
{
@@ -125,7 +128,10 @@
{
if (StringUtils.isBlank(applicationName))
{
- for (PortletApplication pa : (Collection<PortletApplication>)
PaginationUtils.subCollection(portletRegistry.getPortletApplications(),
beginIndex, maxResults))
+ Collection<PortletApplication> pas =
portletRegistry.getPortletApplications();
+ paBeans.setTotalSize(pas.size());
+
+ for (PortletApplication pa : (Collection<PortletApplication>)
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<PathSegment> 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<PortletDefinitionBean> pdBeanList = new
ArrayList<PortletDefinitionBean>();
if (!StringUtils.isBlank(queryParam))
@@ -184,6 +194,7 @@
"AND " + queryParam;
SearchResults searchResults = searchEngine.search(queryText);
List<ParsedObject> searchResultList = searchResults.getResults();
+ pdBeans.setTotalSize(searchResultList.size());
for (ParsedObject parsedObject : (List<ParsedObject>)
PaginationUtils.subList(searchResultList, beginIndex, maxResults))
{
@@ -206,7 +217,10 @@
{
if (StringUtils.isBlank(applicationName) &&
StringUtils.isBlank(definitionName))
{
- for (PortletDefinition pd : (Collection<PortletDefinition>)
PaginationUtils.subCollection(portletRegistry.getAllPortletDefinitions(),
beginIndex, maxResults))
+ Collection<PortletDefinition> pds =
portletRegistry.getAllPortletDefinitions();
+ pdBeans.setTotalSize(pds.size());
+
+ for (PortletDefinition pd : (Collection<PortletDefinition>)
PaginationUtils.subCollection(pds, beginIndex, maxResults))
{
pdBeanList.add(new PortletDefinitionBean(pd));
}
@@ -221,6 +235,9 @@
{
if (pa != null)
{
+ Collection<PortletDefinition> pds =
pa.getPortlets();
+ pdBeans.setTotalSize(pds.size());
+
for (PortletDefinition pd :
(List<PortletDefinition>) 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&r1=887269&r2=887270&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.
-->
-<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">
+<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">
<!-- To enable log4j logging instead of the default java logging of cxf. -->
<bean
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
@@ -68,12 +69,38 @@
</property>
</bean>
+ <bean id="jaxrsJsonProvider"
class="org.apache.cxf.jaxrs.provider.JSONProvider">
+ <meta key="j2:cat" value="default" />
+ <property name="serializeAsArray" value="true"/>
+ <property name="arrayKeys">
+ <list>
+ <!--
+ <value>displayName</value>
+ <value>description</value>
+ <value>initparam</value>
+ <value>language</value>
+ <value>field</value>
+ <value>portletMode</value>
+ <value>windowState</value>
+ <value>definition</value>
+ <value>application</value>
+ -->
+ </list>
+ </property>
+ </bean>
+
<!-- JAX-RS Service Singleton Resource Beans -->
<bean id="org.apache.jetspeed.services.rest.singletons"
class="org.springframework.beans.factory.config.SetFactoryBean">
<meta key="j2:cat" value="default" />
<property name="sourceSet">
<set>
+
+ <!-- JAX-RS Providers -->
+ <ref bean="jaxrsJsonProvider" />
+
+ <!-- Resource providers -->
<ref bean="jaxrsPortletRegistryService" />
+
</set>
</property>
</bean>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]