You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by er...@apache.org on 2013/08/05 21:20:35 UTC
svn commit: r1510670 - in /rave/trunk:
rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/
rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/
rave-components/rave-core/src/main/java/org/apache/rave/portal/serv...
Author: erinnp
Date: Mon Aug 5 19:20:34 2013
New Revision: 1510670
URL: http://svn.apache.org/r1510670
Log:
Add Location Header filter
Added:
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/LocationHeaderResponseFilter.java
- copied, changed from r1509242, rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/JsonWrapperResponseFilter.java
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/RestEntity.java
Modified:
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/JsonWrapperResponseFilter.java
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/NotFoundExceptionMapper.java
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Category.java
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Page.java
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Person.java
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Region.java
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/RegionWidget.java
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/User.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionWidgetsResource.java
rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/cxf-applicationContext.xml
Modified: rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/JsonWrapperResponseFilter.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/JsonWrapperResponseFilter.java?rev=1510670&r1=1510669&r2=1510670&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/JsonWrapperResponseFilter.java (original)
+++ rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/JsonWrapperResponseFilter.java Mon Aug 5 19:20:34 2013
@@ -29,6 +29,7 @@ import javax.ws.rs.container.ContainerRe
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
import javax.ws.rs.core.Response;
+
import java.io.IOException;
import java.util.List;
Copied: rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/LocationHeaderResponseFilter.java (from r1509242, rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/JsonWrapperResponseFilter.java)
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/LocationHeaderResponseFilter.java?p2=rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/LocationHeaderResponseFilter.java&p1=rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/JsonWrapperResponseFilter.java&r1=1509242&r2=1510670&rev=1510670&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/JsonWrapperResponseFilter.java (original)
+++ rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/LocationHeaderResponseFilter.java Mon Aug 5 19:20:34 2013
@@ -19,10 +19,8 @@
package org.apache.rave.rest.filters;
-import org.apache.cxf.jaxrs.ext.ResponseHandler;
-import org.apache.cxf.jaxrs.model.OperationResourceInfo;
-import org.apache.cxf.message.Message;
import org.apache.rave.rest.model.JsonResponseWrapper;
+import org.apache.rave.rest.model.RestEntity;
import org.apache.rave.rest.model.SearchResult;
import javax.ws.rs.container.ContainerRequestContext;
@@ -31,23 +29,23 @@ import javax.ws.rs.container.ContainerRe
import javax.ws.rs.core.Response;
import java.io.IOException;
import java.util.List;
+import javax.ws.rs.core.Response;
+
-public class JsonWrapperResponseFilter implements ContainerResponseFilter {
+public class LocationHeaderResponseFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext containerRequestContext, ContainerResponseContext containerResponseContext) throws IOException {
- Object o = containerResponseContext.getEntity();
- JsonResponseWrapper wrapper;
+ String method = containerRequestContext.getRequest().getMethod();
- Class clazz = o.getClass();
- if (List.class.isAssignableFrom(clazz)) {
- wrapper = new JsonResponseWrapper((List) o);
- } else if (SearchResult.class.isAssignableFrom(clazz)) {
- wrapper = new JsonResponseWrapper((SearchResult) o);
- } else {
- wrapper = new JsonResponseWrapper(o);
+ if(method.equals("POST")) {
+ containerResponseContext.setStatus(Response.Status.CREATED.getStatusCode());
+ RestEntity entity = (RestEntity) containerResponseContext.getEntity();
+ String id = entity.getId();
+ containerResponseContext.getHeaders().add("Location",
+ containerRequestContext.getUriInfo().getAbsolutePathBuilder().path(id).build().toString());
}
- containerResponseContext.setEntity(wrapper, containerResponseContext.getEntityAnnotations(), containerResponseContext.getMediaType());
+ //containerResponseContext.getHeaders().put("Location")
}
}
Modified: rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/NotFoundExceptionMapper.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/NotFoundExceptionMapper.java?rev=1510670&r1=1510669&r2=1510670&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/NotFoundExceptionMapper.java (original)
+++ rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/filters/NotFoundExceptionMapper.java Mon Aug 5 19:20:34 2013
@@ -27,13 +27,6 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
-/**
- * Created with IntelliJ IDEA.
- * User: erinnp
- * Date: 8/1/13
- * Time: 2:09 PM
- * To change this template use File | Settings | File Templates.
- */
@Produces(MediaType.APPLICATION_JSON)
public class NotFoundExceptionMapper implements ExceptionMapper<ResourceNotFoundException> {
@@ -43,6 +36,6 @@ public class NotFoundExceptionMapper imp
return Response.status(Response.Status.NOT_FOUND).entity(new ErrorWrapperResponse(
"The requested resource could not be found.",
"The requested resource could not be found."
- )).build(); //To change body of implemented methods use File | Settings | File Templates.
+ )).build();
}
}
Modified: rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Category.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Category.java?rev=1510670&r1=1510669&r2=1510670&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Category.java (original)
+++ rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Category.java Mon Aug 5 19:20:34 2013
@@ -26,7 +26,7 @@ import javax.xml.bind.annotation.*;
"id", "text"
})
@XmlRootElement(name = "Category")
-public class Category {
+public class Category implements RestEntity{
@XmlAttribute(name = "id")
private String id;
@XmlElement(name = "Text")
Modified: rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Page.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Page.java?rev=1510670&r1=1510669&r2=1510670&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Page.java (original)
+++ rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Page.java Mon Aug 5 19:20:34 2013
@@ -28,7 +28,7 @@ import java.util.List;
"id", "name", "ownerId", "pageType", "pageLayoutCode", "subPages", "regions", "members"
})
@XmlRootElement(name = "Page")
-public class Page {
+public class Page implements RestEntity{
@XmlAttribute(name="id")
private String id;
Modified: rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Person.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Person.java?rev=1510670&r1=1510669&r2=1510670&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Person.java (original)
+++ rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Person.java Mon Aug 5 19:20:34 2013
@@ -26,7 +26,7 @@ import javax.xml.bind.annotation.*;
"id", "username", "displayName", "emailAddress"
})
@XmlRootElement(name = "Person")
-public class Person {
+public class Person implements RestEntity{
@XmlAttribute(name = "id")
private String id;
@XmlElement(name = "Username")
Modified: rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Region.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Region.java?rev=1510670&r1=1510669&r2=1510670&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Region.java (original)
+++ rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Region.java Mon Aug 5 19:20:34 2013
@@ -27,7 +27,7 @@ import java.util.List;
"locked", "regionWidgets"
})
@XmlRootElement(name = "Region")
-public class Region {
+public class Region implements RestEntity{
@XmlElement(name = "locked")
private boolean locked;
Modified: rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/RegionWidget.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/RegionWidget.java?rev=1510670&r1=1510669&r2=1510670&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/RegionWidget.java (original)
+++ rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/RegionWidget.java Mon Aug 5 19:20:34 2013
@@ -30,7 +30,7 @@ import java.util.List;
"id", "type", "widgetId", "widgetUrl", "regionId", "collapsed", "locked", "hideChrome", "ownerId", "userPrefs"
})
@XmlRootElement(name = "RegionWidget")
-public class RegionWidget {
+public class RegionWidget implements RestEntity{
@XmlAttribute(name="id")
protected String id;
Added: rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/RestEntity.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/RestEntity.java?rev=1510670&view=auto
==============================================================================
--- rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/RestEntity.java (added)
+++ rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/RestEntity.java Mon Aug 5 19:20:34 2013
@@ -0,0 +1,31 @@
+/*
+ * 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.rave.rest.model;
+
+/**
+ * Created with IntelliJ IDEA.
+ * User: erinnp
+ * Date: 8/5/13
+ * Time: 1:45 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface RestEntity {
+ public String getId();
+}
Modified: rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/User.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/User.java?rev=1510670&r1=1510669&r2=1510670&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/User.java (original)
+++ rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/User.java Mon Aug 5 19:20:34 2013
@@ -26,7 +26,7 @@ import javax.xml.bind.annotation.*;
"id", "username", "locked", "enabled"
})
@XmlRootElement(name = "User")
-public class User {
+public class User implements RestEntity{
@XmlAttribute(name = "id")
private String id;
@XmlElement(name = "Username")
Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java?rev=1510670&r1=1510669&r2=1510670&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java Mon Aug 5 19:20:34 2013
@@ -525,6 +525,7 @@ public class DefaultPageService implemen
// to allow for more flexibility?
regionWidget.setLocked(false);
regionWidget.setHideChrome(false);
+ regionWidget.setRegion(region);
region.getRegionWidgets().add(position, regionWidget);
updateRenderSequences(region.getRegionWidgets());
Region persistedRegion = regionRepository.save(region);
Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionWidgetsResource.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionWidgetsResource.java?rev=1510670&r1=1510669&r2=1510670&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionWidgetsResource.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionWidgetsResource.java Mon Aug 5 19:20:34 2013
@@ -60,9 +60,8 @@ public class DefaultRegionWidgetsResourc
@Override
public RegionWidget createPageRegionRegionWidget(RegionWidget regionWidget) {
- //TODO: pageService is not being injected - how do I get that to work with an instantiated class?
org.apache.rave.model.RegionWidget fromDb =
- pageService.addWidgetToPageRegion(page.getId(), regionWidget.getWidgetId(), regionWidget.getRegionId());
+ pageService.addWidgetToPageRegion(page.getId(), regionWidget.getWidgetId(), region.getId());
return new RegionWidget(fromDb);
}
Modified: rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/cxf-applicationContext.xml
URL: http://svn.apache.org/viewvc/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/cxf-applicationContext.xml?rev=1510670&r1=1510669&r2=1510670&view=diff
==============================================================================
--- rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/cxf-applicationContext.xml (original)
+++ rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/cxf-applicationContext.xml Mon Aug 5 19:20:34 2013
@@ -42,6 +42,7 @@
<bean class="org.apache.cxf.jaxrs.provider.JAXBElementProvider"/>
<!-- Custom filters -->
+ <ref bean="LocationHeaderResponseFilter"/>
<ref bean="JsonWrapperResponseFilter"/>
<!-- Exception Mappers -->
@@ -75,6 +76,7 @@
<bean id="pagesForRenderBean" class="org.apache.rave.rest.impl.DefaultPageForRenderResource" autowire="byType" />
<bean id="JsonWrapperResponseFilter" class="org.apache.rave.rest.filters.JsonWrapperResponseFilter"/>
+ <bean id="LocationHeaderResponseFilter" class="org.apache.rave.rest.filters.LocationHeaderResponseFilter"/>
<bean id="NotFoundExceptionMapper" class="org.apache.rave.rest.filters.NotFoundExceptionMapper"/>
</beans>
\ No newline at end of file