Author: erinnp
Date: Mon Aug 12 20:18:41 2013
New Revision: 1513241

URL: http://svn.apache.org/r1513241
Log:
RAVE-956: Apply patch from Mike Jett

Added:
    
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PortalPreferenceResource.java
    
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPortalPreferenceResource.java
Modified:
    
rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/cxf-applicationContext.xml

Added: 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PortalPreferenceResource.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PortalPreferenceResource.java?rev=1513241&view=auto
==============================================================================
--- 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PortalPreferenceResource.java
 (added)
+++ 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PortalPreferenceResource.java
 Mon Aug 12 20:18:41 2013
@@ -0,0 +1,69 @@
+/*
+ * 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;
+
+import org.apache.rave.model.PortalPreference;
+import org.apache.rave.rest.model.SearchResult;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+@Path("/preferences")
+public interface PortalPreferenceResource {
+
+    /*
+    --- Preference operations
+     */
+
+    /**
+     * Returns a list of preferences
+     *
+     * @return
+     */
+    @GET
+    @Path("/")
+    @Produces(MediaType.APPLICATION_JSON)
+    SearchResult<PortalPreference> getPreferences();
+
+    /**
+     * Creates a new page
+     *
+     * @param preference the definition of the new page
+     * @return
+     */
+    @POST
+    @Path("/")
+    @Produces(MediaType.APPLICATION_JSON)
+    @Consumes(MediaType.APPLICATION_JSON)
+    PortalPreference updatePreferences(PortalPreference preference);
+
+    /**
+     * Returns the given page
+     *
+     * @param id ID of the preference on which the operation is to take place
+     * @return
+     */
+    @GET
+    @Path("/{preferenceId}")
+    @Produces(MediaType.APPLICATION_JSON)
+    PortalPreference getPreference(@PathParam("preferenceId") String id);
+
+}

Added: 
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPortalPreferenceResource.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPortalPreferenceResource.java?rev=1513241&view=auto
==============================================================================
--- 
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPortalPreferenceResource.java
 (added)
+++ 
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPortalPreferenceResource.java
 Mon Aug 12 20:18:41 2013
@@ -0,0 +1,62 @@
+/*
+ * 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.impl;
+
+
+import org.apache.rave.exception.ResourceNotFoundException;
+import org.apache.rave.model.PortalPreference;
+import org.apache.rave.portal.service.PortalPreferenceService;
+import org.apache.rave.rest.PortalPreferenceResource;
+import org.apache.rave.rest.model.SearchResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class DefaultPortalPreferenceResource implements 
PortalPreferenceResource {
+
+    private Logger logger = LoggerFactory.getLogger(getClass());
+    private PortalPreferenceService preferenceService;
+
+    @Override
+    public SearchResult<PortalPreference> getPreferences() {
+        return preferenceService.getAll();
+    }
+
+    @Override
+    public PortalPreference updatePreferences(PortalPreference preference) {
+        preferenceService.savePreference(preference);
+
+        return null;
+    }
+
+    @Override
+    public PortalPreference getPreference(String id) {
+        PortalPreference fromDb = preferenceService.getPreference(id);
+
+        if(fromDb == null) {
+            throw new ResourceNotFoundException(id);
+        }
+
+        return fromDb;
+    }
+
+    public void setPreferenceService(PortalPreferenceService 
preferenceService) {
+        this.preferenceService = preferenceService;
+    }
+}

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=1513241&r1=1513240&r2=1513241&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 12 20:18:41 2013
@@ -57,6 +57,7 @@
             <ref bean="pageLayoutBean" />
             <ref bean="pagesForRenderBean" />
             <ref bean="categoriesBean"/>
+            <ref bean="preferencesBean"/>
         </jaxrs:serviceBeans>
     </jaxrs:server>
 
@@ -73,6 +74,8 @@
         <property name="userService" ref="userService"/>
     </bean>
 
+    <bean id="preferencesBean" 
class="org.apache.rave.rest.impl.DefaultPortalPreferenceResource" 
autowire="byType" />
+
     <bean id="pageLayoutBean" 
class="org.apache.rave.rest.impl.DefaultPageLayoutResource" autowire="byType" />
 
     <bean id="pagesBean" class="org.apache.rave.rest.impl.DefaultPageResource" 
autowire="byType" />


Reply via email to