On 7/7/11 7:08 PM, "[email protected]" <[email protected]> wrote:

>Author: mpierce
>Date: Thu Jul  7 23:08:58 2011
>New Revision: 1144091
>
>URL: http://svn.apache.org/viewvc?rev=1144091&view=rev
>Log:
>(RAVE-89) Creating a blank Page, Regions for newly registered user.
>Widgets can then be added from the widget store.

In the controller, you are doing a lot to create the new page.  IMHO, this
is really a task for the pageService.  The controller should just be a
simple 'router' that delegates any model manipulation off to the model
(includes services).

>
>
>Added:
>
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repo
>sitory/impl/JpaPageLayoutRepository.java
>
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/PageLayoutService.java
>
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/RegionService.java
>
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/impl/DefaultPageLayoutService.java
>
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/impl/DefaultRegionService.java
>Removed:
>
>incubator/rave/trunk/rave-portal/src/main/webapp/WEB-INF/views/NewAccountR
>equestReceived.jsp
>Modified:
>
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/mode
>l/Page.java
>
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/mode
>l/PageLayout.java
>
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repo
>sitory/PageLayoutRepository.java
>
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repo
>sitory/impl/JpaPageRepository.java
>
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/PageService.java
>
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/UserService.java
>
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/impl/DefaultPageService.java
>
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/impl/DefaultUserService.java
>
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/
>controller/NewAccountController.java
>
>incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/mode
>l/PageTest.java
>
>Modified:
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/mode
>l/Page.java
>URL:
>http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/jav
>a/org/apache/rave/portal/model/Page.java?rev=1144091&r1=1144090&r2=1144091
>&view=diff
>==========================================================================
>====
>---
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/mode
>l/Page.java (original)
>+++
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/mode
>l/Page.java Thu Jul  7 23:08:58 2011
>@@ -51,7 +51,7 @@ public class Page {
>     @JoinColumn(name="page_layout_id")
>     private PageLayout pageLayout;
>
>-    @OneToMany(fetch = FetchType.EAGER)
>+    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL,
>orphanRemoval = true)
>     @JoinColumn(name="page_id")
>     private List<Region> regions;
>
>
>Modified:
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/mode
>l/PageLayout.java
>URL:
>http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/jav
>a/org/apache/rave/portal/model/PageLayout.java?rev=1144091&r1=1144090&r2=1
>144091&view=diff
>==========================================================================
>====
>---
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/mode
>l/PageLayout.java (original)
>+++
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/mode
>l/PageLayout.java Thu Jul  7 23:08:58 2011
>@@ -27,6 +27,10 @@ import javax.persistence.*;
> @Entity
> @Table(name="page_layout")
> @SequenceGenerator(name="pageLayoutIdSeq", sequenceName =
>"page_layout_id_seq")
>+@NamedQueries({
>+    @NamedQuery(name="PageLayout.getByLayoutCode", query = "select pl
>from PageLayout pl where pl.code = :code")
>+})
>+
> public class PageLayout {
>     @Id @Column(name="id")
>     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator =
>"pageLayoutIdSeq")
>
>Modified:
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repo
>sitory/PageLayoutRepository.java
>URL:
>http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/jav
>a/org/apache/rave/portal/repository/PageLayoutRepository.java?rev=1144091&
>r1=1144090&r2=1144091&view=diff
>==========================================================================
>====
>---
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repo
>sitory/PageLayoutRepository.java (original)
>+++
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repo
>sitory/PageLayoutRepository.java Thu Jul  7 23:08:58 2011
>@@ -20,4 +20,6 @@ package org.apache.rave.portal.repositor
>
> import org.apache.rave.portal.model.PageLayout;
>
>-public interface PageLayoutRepository extends Repository<PageLayout> { }
>\ No newline at end of file
>+public interface PageLayoutRepository extends Repository<PageLayout> {
>+        PageLayout getByPageLayoutCode(String codename);
>+}
>\ No newline at end of file
>
>Added:
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repo
>sitory/impl/JpaPageLayoutRepository.java
>URL:
>http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/jav
>a/org/apache/rave/portal/repository/impl/JpaPageLayoutRepository.java?rev=
>1144091&view=auto
>==========================================================================
>====
>---
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repo
>sitory/impl/JpaPageLayoutRepository.java (added)
>+++
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repo
>sitory/impl/JpaPageLayoutRepository.java Thu Jul  7 23:08:58 2011
>@@ -0,0 +1,59 @@
>+/*
>+ * 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.portal.repository.impl;
>+
>+import org.apache.commons.lang.NotImplementedException;
>+import org.apache.rave.portal.model.PageLayout;
>+import org.apache.rave.portal.repository.PageLayoutRepository;
>+import org.springframework.stereotype.Repository;
>+import org.springframework.transaction.annotation.Transactional;
>+
>+import javax.persistence.EntityManager;
>+import javax.persistence.PersistenceContext;
>+import javax.persistence.TypedQuery;
>+
>+import static
>org.apache.rave.portal.repository.impl.util.JpaUtil.getSingleResult;
>+import static
>org.apache.rave.portal.repository.impl.util.JpaUtil.saveOrUpdate;
>+
>+/**
>+ */
>+@Repository
>+public class JpaPageLayoutRepository implements PageLayoutRepository{
>+
>+    @PersistenceContext
>+    private EntityManager manager;
>+
>+    @Override
>+    public PageLayout get(long layoutId) {
>+        return manager.find(PageLayout.class, layoutId);
>+    }
>+
>+        @Override
>+        public PageLayout getByPageLayoutCode(String codename){
>+                 TypedQuery<PageLayout>query =
>manager.createNamedQuery("PageLayout.getByLayoutCode",PageLayout.class);
>+                 query.setParameter("code",codename);
>+                 return getSingleResult(query.getResultList());
>+        }
>+
>+    @Override
>+    public PageLayout save(PageLayout pageLayout) {
>+                 return
>saveOrUpdate(pageLayout.getId(),manager,pageLayout);
>+    }
>+}
>
>Modified:
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repo
>sitory/impl/JpaPageRepository.java
>URL:
>http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/jav
>a/org/apache/rave/portal/repository/impl/JpaPageRepository.java?rev=114409
>1&r1=1144090&r2=1144091&view=diff
>==========================================================================
>====
>---
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repo
>sitory/impl/JpaPageRepository.java (original)
>+++
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/repo
>sitory/impl/JpaPageRepository.java Thu Jul  7 23:08:58 2011
>@@ -29,6 +29,8 @@ import javax.persistence.PersistenceCont
> import javax.persistence.TypedQuery;
> import java.util.List;
>
>+import static
>org.apache.rave.portal.repository.impl.util.JpaUtil.saveOrUpdate;
>+
> @Repository
> public class JpaPageRepository implements PageRepository {
>
>@@ -49,6 +51,7 @@ public class JpaPageRepository implement
>
>     @Override
>     public Page save(Page item) {
>-        throw new NotImplementedException("Save is not implemented for
>this repository");
>+                 return saveOrUpdate(item.getId(),manager,item);
>+                 //        throw new NotImplementedException("Save is
>not implemented for this repository");
>     }
> }
>\ No newline at end of file
>
>Added:
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/PageLayoutService.java
>URL:
>http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/jav
>a/org/apache/rave/portal/service/PageLayoutService.java?rev=1144091&view=a
>uto
>==========================================================================
>====
>---
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/PageLayoutService.java (added)
>+++
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/PageLayoutService.java Thu Jul  7 23:08:58 2011
>@@ -0,0 +1,25 @@
>+/*
>+ * 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.portal.service;
>+
>+import org.apache.rave.portal.model.PageLayout;
>+
>+public interface PageLayoutService {
>+        public PageLayout getPageLayoutByCode(String code);
>+}
>\ No newline at end of file
>
>Modified:
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/PageService.java
>URL:
>http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/jav
>a/org/apache/rave/portal/service/PageService.java?rev=1144091&r1=1144090&r
>2=1144091&view=diff
>==========================================================================
>====
>---
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/PageService.java (original)
>+++
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/PageService.java Thu Jul  7 23:08:58 2011
>@@ -60,4 +60,10 @@ public interface PageService {
>          * @return the updated Region. //TODO need to make sure this is
>the right return.
>          */
>         Region removeWidgetFromPage(long regionWidgetId, long regionId);
>+
>+        /**
>+         * Registers a new page.
>+         * @param page the page object to register with the data
>management system.
>+         */
>+        void registerNewPage(Page page);
> }
>\ No newline at end of file
>
>Added:
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/RegionService.java
>URL:
>http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/jav
>a/org/apache/rave/portal/service/RegionService.java?rev=1144091&view=auto
>==========================================================================
>====
>---
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/RegionService.java (added)
>+++
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/RegionService.java Thu Jul  7 23:08:58 2011
>@@ -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.portal.service;
>+
>+import org.apache.rave.portal.model.Region;
>+
>+public interface RegionService {
>+
>+        /**
>+         * Register a new region
>+         * @param region the region object to register
>+         */
>+        void registerNewRegion(Region region);
>+
>+}
>
>Modified:
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/UserService.java
>URL:
>http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/jav
>a/org/apache/rave/portal/service/UserService.java?rev=1144091&r1=1144090&r
>2=1144091&view=diff
>==========================================================================
>====
>---
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/UserService.java (original)
>+++
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/UserService.java Thu Jul  7 23:08:58 2011
>@@ -44,6 +44,17 @@ public interface UserService extends Use
>
>         /**
>          * Registers a new user object.
>+         * @param user the new user object to register with the data
>management system.
>          */
>         void registerNewUser(User user);
>+
>+        /**
>+         * Return the requested user object using the user's name.
>+         */
>+        User getUserByUsername(String userName);
>+
>+        /**
>+         * Return a user object by the user ID.
>+         */
>+        User getUserById(Long id);
> }
>\ No newline at end of file
>
>Added:
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/impl/DefaultPageLayoutService.java
>URL:
>http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/jav
>a/org/apache/rave/portal/service/impl/DefaultPageLayoutService.java?rev=11
>44091&view=auto
>==========================================================================
>====
>---
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/impl/DefaultPageLayoutService.java (added)
>+++
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/impl/DefaultPageLayoutService.java Thu Jul  7 23:08:58 2011
>@@ -0,0 +1,42 @@
>+/*
>+ * 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.portal.service.impl;
>+
>+import org.apache.rave.portal.model.PageLayout;
>+import org.apache.rave.portal.service.PageLayoutService;
>+import org.apache.rave.portal.repository.PageLayoutRepository;
>+import org.springframework.beans.factory.annotation.Autowired;
>+import org.springframework.stereotype.Service;
>+
>+@Service
>+public class DefaultPageLayoutService implements PageLayoutService {
>+        private final PageLayoutRepository pageLayoutRepository;
>+
>+        @Autowired
>+        public DefaultPageLayoutService(PageLayoutRepository
>pageLayoutRepository) {
>+                 this.pageLayoutRepository=pageLayoutRepository;
>+        }
>+
>+        @Override
>+        public PageLayout getPageLayoutByCode(String code) {
>+                 return pageLayoutRepository.getByPageLayoutCode(code);
>+        }
>+}
>+
>
>Modified:
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/impl/DefaultPageService.java
>URL:
>http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/jav
>a/org/apache/rave/portal/service/impl/DefaultPageService.java?rev=1144091&
>r1=1144090&r2=1144091&view=diff
>==========================================================================
>====
>---
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/impl/DefaultPageService.java (original)
>+++
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/impl/DefaultPageService.java Thu Jul  7 23:08:58 2011
>@@ -68,7 +68,6 @@ public class DefaultPageService implemen
>         @Override
>         @Transactional
>         public Region removeWidgetFromPage(long regionWidgetId, long
>regionId){
>-                 //TODO must implement.  Returns null for the time being.
>         Region region = getFromRepository(regionId, regionRepository);
>         return removeWidgetInstance(regionWidgetId, region);
>         }
>@@ -82,6 +81,12 @@ public class DefaultPageService implemen
>         return createWidgetInstance(widget, region, 0);
>     }
>
>+        @Override
>+        @Transactional
>+        public void registerNewPage(Page page) {
>+                 pageRepository.save(page);
>+        }
>+
>     private RegionWidget createWidgetInstance(Widget widget, Region
>region, int position) {
>         RegionWidget regionWidget = new RegionWidget();
>         regionWidget.setRenderOrder(position);
>
>Added:
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/impl/DefaultRegionService.java
>URL:
>http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/jav
>a/org/apache/rave/portal/service/impl/DefaultRegionService.java?rev=114409
>1&view=auto
>==========================================================================
>====
>---
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/impl/DefaultRegionService.java (added)
>+++
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/impl/DefaultRegionService.java Thu Jul  7 23:08:58 2011
>@@ -0,0 +1,45 @@
>+/*
>+ * 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.portal.service.impl;
>+
>+import org.apache.rave.portal.model.Region;
>+import org.apache.rave.portal.service.RegionService;
>+import org.apache.rave.portal.repository.RegionRepository;
>+import org.springframework.beans.factory.annotation.Autowired;
>+import org.springframework.stereotype.Service;
>+import org.springframework.transaction.annotation.Transactional;
>+
>+@Service
>+public class DefaultRegionService implements RegionService {
>+
>+        private final RegionRepository regionRepository;
>+
>+        @Autowired
>+        public DefaultRegionService(RegionRepository regionRepository) {
>+                 this.regionRepository = regionRepository;
>+        }
>+
>+        @Override
>+        @Transactional
>+        public void registerNewRegion(Region region) {
>+                 regionRepository.save(region);
>+        }
>+
>+}
>\ No newline at end of file
>
>Modified:
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/impl/DefaultUserService.java
>URL:
>http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/jav
>a/org/apache/rave/portal/service/impl/DefaultUserService.java?rev=1144091&
>r1=1144090&r2=1144091&view=diff
>==========================================================================
>====
>---
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/impl/DefaultUserService.java (original)
>+++
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/serv
>ice/impl/DefaultUserService.java Thu Jul  7 23:08:58 2011
>@@ -113,4 +113,14 @@ public class DefaultUserService implemen
>         public void registerNewUser(User user) {
>                  userRepository.save(user);
>         }
>+
>+        @Override
>+        public User getUserById(Long id) {
>+                 return userRepository.get(id);
>+        }
>+
>+        @Override
>+        public User getUserByUsername(String userName){
>+                 return userRepository.getByUsername(userName);
>+        }
> }
>\ No newline at end of file
>
>Modified:
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/
>controller/NewAccountController.java
>URL:
>http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/main/jav
>a/org/apache/rave/portal/web/controller/NewAccountController.java?rev=1144
>091&r1=1144090&r2=1144091&view=diff
>==========================================================================
>====
>---
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/
>controller/NewAccountController.java (original)
>+++
>incubator/rave/trunk/rave-portal/src/main/java/org/apache/rave/portal/web/
>controller/NewAccountController.java Thu Jul  7 23:08:58 2011
>@@ -20,9 +20,15 @@
> package org.apache.rave.portal.web.controller;
>
> import org.apache.rave.portal.service.UserService;
>+import org.apache.rave.portal.service.PageService;
>+import org.apache.rave.portal.service.PageLayoutService;
>+import org.apache.rave.portal.service.RegionService;
> import org.apache.rave.portal.web.util.ModelKeys;
> import org.apache.rave.portal.web.util.ViewNames;
> import org.apache.rave.portal.model.User;
>+import org.apache.rave.portal.model.Page;
>+import org.apache.rave.portal.model.PageLayout;
>+import org.apache.rave.portal.model.Region;
> import org.springframework.beans.factory.annotation.Autowired;
> import org.springframework.stereotype.Controller;
> import org.springframework.ui.Model;
>@@ -30,22 +36,31 @@ import org.springframework.web.bind.anno
> import org.springframework.web.bind.annotation.RequestMapping;
> import org.springframework.web.bind.annotation.RequestMethod;
> import org.springframework.web.bind.annotation.RequestParam;
>-
>+import java.util.List;
>+import java.util.ArrayList;
>
> @Controller
> @RequestMapping(value = { "/newaccount/*", "/newaccount" })
> public class NewAccountController {
>
>     private final UserService userService;
>-
>+        private final PageService pageService;
>+        private final PageLayoutService pageLayoutService;
>+        private final RegionService regionService;
>+
>     @Autowired
>-    public NewAccountController(UserService userService) {
>+    public NewAccountController(UserService userService, PageService
>pageService, PageLayoutService pageLayoutService, RegionService
>regionService) {
>         this.userService = userService;
>+                 this.pageService = pageService;
>+                 this.pageLayoutService = pageLayoutService;
>+                 this.regionService = regionService;
>     }
>
>     @RequestMapping(method = RequestMethod.POST)
>         //Needs to be specified by action.
>-    public String create(Model model, @RequestParam String userName,
>@RequestParam String password) {
>+        //TODO: have a more elegant way of adding a user
>+        public String create(Model model, @RequestParam String userName,
>@RequestParam String password) {
>+        //Create a new user object and register it.
>                  User user=new User();
>                  user.setUsername(userName);
>                  user.setPassword(password);
>@@ -53,9 +68,31 @@ public class NewAccountController {
>                  user.setLocked(false);
>                  user.setEnabled(true);
>                  userService.registerNewUser(user);
>-
>+
>+                 //Return the newly registered user
>+                 User
>registeredUser=userService.getUserByUsername(userName);
>+
>+                 //Create a PageLayout object.  We will default to
>+                 //the two-column layout
>+                 PageLayout
>pageLayout=pageLayoutService.getPageLayoutByCode("columns_2");
>+
>+                 //Create regions
>+                 List<Region> regions=new ArrayList<Region>();
>+                 Region region1=new Region();
>+                 Region region2=new Region();
>+                 regions.add(region1);
>+                 regions.add(region2);
>+
>+                 //Create a Page object and register it.
>+                 Page page=new Page();
>+                 page.setName("main");
>+                 page.setOwner(registeredUser);
>+                 page.setPageLayout(pageLayout);
>+                 page.setRenderSequence(1L);
>+
>page.setRegions(regions);
>+                 pageService.registerNewPage(page);
>+
>         return "redirect:/";
>     }
>-
>
> }
>\ No newline at end of file
>
>Modified:
>incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/mode
>l/PageTest.java
>URL:
>http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/src/test/jav
>a/org/apache/rave/portal/model/PageTest.java?rev=1144091&r1=1144090&r2=114
>4091&view=diff
>==========================================================================
>====
>---
>incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/mode
>l/PageTest.java (original)
>+++
>incubator/rave/trunk/rave-portal/src/test/java/org/apache/rave/portal/mode
>l/PageTest.java Thu Jul  7 23:08:58 2011
>@@ -22,6 +22,7 @@ import org.junit.After;
> import org.junit.Before;
> import org.junit.Test;
>
>+
> import java.util.ArrayList;
> import java.util.List;
>
>
>

Reply via email to