-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Yeah, Raminder also made this point offline.  I'm happy to reorganize the code, 
just wanted to commit things after I got it working.


Marlon


On 7/11/11 12:46 PM, Franklin, Matthew B. wrote:
> 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;
>>
>>
>>
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.16 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJOGyueAAoJEEfVXEODPFIDLowH/3EeE1DCcu8z9XYG5C4QKXhi
oQKL7zK32Wdsgidht7sdPjRtDsN1MzODf/ERNKxMYZ3VMvnKEu4vdXZzDnCMCDpS
+XTliiNbGWDkn4JHp5voeYSbrJAzajCF3alsMHqyP7SyItCoCQ7HPKrUQTXNKBag
OAYkCa2Ja/C/RGQnTLDXQElbeJLuIG97cuBqNo//UmztGLn+UYN8sjGfha19Ek1Q
2h6ZowHNmd2xQMV7TKBg3Bv32DYsYI6NG9E8IjT1vxZVoIBtk2CuBdFJaE2o86Ad
5Vns6pwLv21o3P3XMQ1hRXEaS1mP7kDQ7AaPOdLpFxJR9A0Nxub4kpa7z2jVXCk=
=Bs8x
-----END PGP SIGNATURE-----

Reply via email to