You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ri...@apache.org on 2007/12/08 04:31:14 UTC

svn commit: r602307 - in /maven/continuum/branches/continuum-jpa/continuum-model-jpa/src: main/java/org/apache/maven/continuum/store/api/ main/java/org/apache/maven/continuum/store/jpa/ test/java/org/apache/maven/continuum/store/ test/java/org/apache/m...

Author: rinku
Date: Fri Dec  7 19:31:13 2007
New Revision: 602307

URL: http://svn.apache.org/viewvc?rev=602307&view=rev
Log:
o  updates to generified JpaStore and unit tests.

Modified:
    maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/ProjectGroupQuery.java
    maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/ProjectNotifierQuery.java
    maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/ProjectQuery.java
    maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/Store.java
    maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/jpa/JpaStore.java
    maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/jpa/JpaStoreFactory.java
    maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/jpa/StoreSupport.java
    maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/ApplicationContextAwareStoreTestCase.java
    maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaProjectGroupStoreTest.java
    maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaProjectNotifierStoreTest.java
    maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaProjectStoreTest.java
    maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaStoreTest.java
    maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/resources/META-INF/spring-config.xml

Modified: maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/ProjectGroupQuery.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/ProjectGroupQuery.java?rev=602307&r1=602306&r2=602307&view=diff
==============================================================================
--- maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/ProjectGroupQuery.java (original)
+++ maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/ProjectGroupQuery.java Fri Dec  7 19:31:13 2007
@@ -4,8 +4,7 @@
 package org.apache.maven.continuum.store.api;
 
 import java.util.Date;
-
-import org.apache.maven.continuum.model.project.ProjectGroup;
+import java.util.Map;
 
 /**
  * Wraps up retrieval criteria for {@link ProjectGroup}s.
@@ -14,7 +13,7 @@
  * @version $Id$
  * @since 1.2
  */
-public class ProjectGroupQuery implements Query<ProjectGroup>
+public class ProjectGroupQuery<ProjectGroup> implements Query<ProjectGroup>
 {
 
     /**
@@ -236,6 +235,72 @@
     public void setName( String name )
     {
         this.name = name;
+    }
+
+    /**
+     * @{inheritDoc}
+     * 
+     * @see org.apache.maven.continuum.store.api.Query#toString(java.util.Map)
+     */
+    public String toString( Map<String, Object> whereClause )
+    {
+        StringBuffer sb = new StringBuffer();
+
+        if ( this.hasId() )
+        {
+            whereClause.put( "id", this.getId() );
+            if ( sb.length() > 0 )
+                sb.append( "and" );
+            sb.append( " projectGroup.id =:id " );
+        }
+        if ( this.hasDateCreated() )
+        {
+            whereClause.put( "dateCreated", this.getDateCreated() );
+            if ( sb.length() > 0 )
+                sb.append( "and" );
+            sb.append( " projectGroup.dateCreated =:dateCreated " );
+        }
+        if ( this.hasDateUpdated() )
+        {
+            whereClause.put( "dateUpdated", this.getDateUpdated() );
+            if ( sb.length() > 0 )
+                sb.append( "and" );
+            sb.append( " projectGroup.dateUpdated =:dateUpdated " );
+        }
+        if ( this.hasDescription() )
+        {
+            whereClause.put( "description", this.getDescription() );
+            if ( sb.length() > 0 )
+                sb.append( "and" );
+            sb.append( " projectGroup.description =:description " );
+        }
+        if ( this.hasGroupId() )
+        {
+            whereClause.put( "groupId", this.getGroupId() );
+            if ( sb.length() > 0 )
+                sb.append( "and" );
+            sb.append( " projectGroup.groupId =:groupId " );
+        }
+        if ( this.hasModelEncoding() )
+        {
+            whereClause.put( "modelEncoding", this.getModelEncoding() );
+            if ( sb.length() > 0 )
+                sb.append( "and" );
+            sb.append( " projectGroup.modelEncoding =:modelEncoding " );
+        }
+        if ( this.hasName() )
+        {
+            whereClause.put( "name", this.getName() );
+            if ( sb.length() > 0 )
+                sb.append( "and" );
+            sb.append( " projectGroup.name =:name " );
+        }
+
+        if ( sb.length() > 0 )
+            sb.insert( 0, " where " );
+        sb.insert( 0, "select projectGroup from ProjectGroup as projectGroup " );
+
+        return sb.toString();
     }
 
 }

Modified: maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/ProjectNotifierQuery.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/ProjectNotifierQuery.java?rev=602307&r1=602306&r2=602307&view=diff
==============================================================================
--- maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/ProjectNotifierQuery.java (original)
+++ maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/ProjectNotifierQuery.java Fri Dec  7 19:31:13 2007
@@ -4,17 +4,17 @@
 package org.apache.maven.continuum.store.api;
 
 import java.util.Date;
+import java.util.Map;
 
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.project.ProjectGroup;
-import org.apache.maven.continuum.model.project.ProjectNotifier;
 
 /**
  * @author <a href='mailto:rahul.thakur.xdev@gmail.com'>Rahul Thakur</a>
  * @version $Id$
  * @since 1.2
  */
-public class ProjectNotifierQuery implements Query<ProjectNotifier>
+public class ProjectNotifierQuery<ProjectNotifier> implements Query<ProjectNotifier>
 {
 
     /**
@@ -184,6 +184,63 @@
     public void setUserDefined( boolean isUserDefined )
     {
         this.isUserDefined = isUserDefined;
+    }
+
+    /**
+     * @{inheritDoc}
+     * 
+     * @see org.apache.maven.continuum.store.api.Query#toString(java.util.Map)
+     */
+    public String toString( Map<String, Object> whereClause )
+    {
+        StringBuffer sb = new StringBuffer();
+
+        if ( this.hasId() )
+        {
+            whereClause.put( "id", this.getId() );
+            if ( sb.length() > 0 )
+                sb.append( "and" );
+            sb.append( " notifier.id =:id " );
+        }
+        if ( this.hasDateCreated() )
+        {
+            whereClause.put( "dateCreated", this.getDateCreated() );
+            if ( sb.length() > 0 )
+                sb.append( "and" );
+            sb.append( " notifier.dateCreated =:dateCreated " );
+        }
+        if ( this.hasDateUpdated() )
+        {
+            whereClause.put( "dateUpdated", this.getDateUpdated() );
+            if ( sb.length() > 0 )
+                sb.append( "and" );
+            sb.append( " notifier.dateUpdated =:dateUpdated " );
+        }
+        if ( this.hasModelEncoding() )
+        {
+            whereClause.put( "modelEncoding", this.getModelEncoding() );
+            if ( sb.length() > 0 )
+                sb.append( "and" );
+            sb.append( " notifier.modelEncoding =:modelEncoding " );
+        }
+        if ( this.isDefinedOnProject() )
+        {
+            // TODO: Implement!
+            // Need to check what property is setup on the Notifier.
+            // May need to add a property ORM mapping to persist.
+        }
+        if ( this.isUserDefined() )
+        {
+            // TODO: Implement!
+            // Need to check what property is setup on the Notifier.
+            // May need to add a property ORM mapping to persist.
+        }
+
+        if ( sb.length() > 0 )
+            sb.insert( 0, " where " );
+        sb.insert( 0, "select project from Project as project " );
+
+        return sb.toString();
     }
 
 }

Modified: maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/ProjectQuery.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/ProjectQuery.java?rev=602307&r1=602306&r2=602307&view=diff
==============================================================================
--- maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/ProjectQuery.java (original)
+++ maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/ProjectQuery.java Fri Dec  7 19:31:13 2007
@@ -6,8 +6,6 @@
 import java.util.Date;
 import java.util.Map;
 
-import org.apache.maven.continuum.model.project.Project;
-
 /**
  * Wraps up retrieval criteria for {@link Project}s.
  * 
@@ -327,84 +325,86 @@
      * 
      * @see org.apache.maven.continuum.store.api.Query#toString(java.util.Map)
      */
-    public String toString( Map<String, Object> where )
+    public String toString( Map<String, Object> whereClause )
     {
         StringBuffer sb = new StringBuffer();
 
         if ( this.hasId() )
         {
-            where.put( "id", this.getId() );
+            whereClause.put( "id", this.getId() );
             if ( sb.length() > 0 )
                 sb.append( "and" );
             sb.append( " project.id =:id " );
         }
         if ( this.hasDateCreated() )
         {
-            where.put( "dateCreated", this.getDateCreated() );
+            whereClause.put( "dateCreated", this.getDateCreated() );
             if ( sb.length() > 0 )
                 sb.append( "and" );
             sb.append( " project.dateCreated =:dateCreated " );
         }
         if ( this.hasDateUpdated() )
         {
-            where.put( "dateUpdated", this.getDateUpdated() );
+            whereClause.put( "dateUpdated", this.getDateUpdated() );
             if ( sb.length() > 0 )
                 sb.append( "and" );
             sb.append( " project.dateUpdated =:dateUpdated " );
         }
         if ( this.hasDescription() )
         {
-            where.put( "description", this.getDescription() );
+            whereClause.put( "description", this.getDescription() );
             if ( sb.length() > 0 )
                 sb.append( "and" );
             sb.append( " project.description =:description " );
         }
         if ( this.hasGroupId() )
         {
-            where.put( "groupId", this.getGroupId() );
+            whereClause.put( "groupId", this.getGroupId() );
             if ( sb.length() > 0 )
                 sb.append( "and" );
             sb.append( " project.groupId =:groupId " );
         }
         if ( this.hasModelEncoding() )
         {
-            where.put( "modelEncoding", this.getModelEncoding() );
+            whereClause.put( "modelEncoding", this.getModelEncoding() );
             if ( sb.length() > 0 )
                 sb.append( "and" );
             sb.append( " project.modelEncoding =:modelEncoding " );
         }
         if ( this.hasName() )
         {
-            where.put( "name", this.getName() );
+            whereClause.put( "name", this.getName() );
             if ( sb.length() > 0 )
                 sb.append( "and" );
             sb.append( " project.name =:name " );
         }
         if ( this.hasArtifactId() )
         {
-            where.put( "artifactId", this.getArtifactId() );
+            whereClause.put( "artifactId", this.getArtifactId() );
             if ( sb.length() > 0 )
                 sb.append( "and" );
             sb.append( " project.artifactId =:artifactId" );
         }
         if ( this.hasBuildNumber() )
         {
-            where.put( "buildNumber", this.getBuildNumber() );
+            whereClause.put( "buildNumber", this.getBuildNumber() );
             if ( sb.length() > 0 )
                 sb.append( "and" );
             sb.append( " project.buildNumber =:buildNumber" );
         }
         if ( this.hasVersion() )
         {
-            where.put( "version", this.getVersion() );
+            whereClause.put( "version", this.getVersion() );
             if ( sb.length() > 0 )
                 sb.append( "and" );
             sb.append( " project.version =:version" );
         }
 
-        String whereClause = ( sb.length() > 0 ? " where " : "" ) + sb.toString();
+        if ( sb.length() > 0 )
+            sb.insert( 0, " where " );
+        sb.insert( 0, "select project from Project as project " );
 
-        return null;
+        return sb.toString();
     }
 
 }

Modified: maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/Store.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/Store.java?rev=602307&r1=602306&r2=602307&view=diff
==============================================================================
--- maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/Store.java (original)
+++ maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/api/Store.java Fri Dec  7 19:31:13 2007
@@ -5,6 +5,8 @@
 
 import java.util.List;
 
+import org.apache.maven.continuum.model.CommonUpdatableEntity;
+
 /**
  * Interface that Continuum store extensions/implementations are expected to implement to allow operations on the
  * underlying store.
@@ -19,7 +21,7 @@
  * @version $Id$
  * @since 1.2
  */
-public interface Store<T, Q extends Query<T>>
+public interface Store<T extends CommonUpdatableEntity, Q extends Query<T>>
 {
 
     /**

Modified: maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/jpa/JpaStore.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/jpa/JpaStore.java?rev=602307&r1=602306&r2=602307&view=diff
==============================================================================
--- maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/jpa/JpaStore.java (original)
+++ maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/jpa/JpaStore.java Fri Dec  7 19:31:13 2007
@@ -7,7 +7,7 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.model.CommonUpdatableEntity;
 import org.apache.maven.continuum.store.api.EntityNotFoundException;
 import org.apache.maven.continuum.store.api.Query;
 import org.apache.maven.continuum.store.api.Store;
@@ -20,7 +20,7 @@
  * @version $Id$
  * @since 1.2
  */
-public class JpaStore<T, Q extends Query<T>> extends StoreSupport implements Store<T, Q>
+public class JpaStore<T extends CommonUpdatableEntity, Q extends Query<T>> extends StoreSupport implements Store<T, Q>
 {
 
     /**
@@ -80,8 +80,14 @@
     @Transactional( readOnly = false )
     public T save( T entity ) throws StoreException
     {
-        // TODO Auto-generated method stub
-        return null;
+        if ( null != entity )
+        {
+            if ( null == entity.getId() )
+                getJpaTemplate().persist( entity );
+            else
+                entity = getJpaTemplate().merge( entity );
+        }
+        return entity;
     }
 
 }

Modified: maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/jpa/JpaStoreFactory.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/jpa/JpaStoreFactory.java?rev=602307&r1=602306&r2=602307&view=diff
==============================================================================
--- maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/jpa/JpaStoreFactory.java (original)
+++ maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/jpa/JpaStoreFactory.java Fri Dec  7 19:31:13 2007
@@ -4,6 +4,10 @@
 package org.apache.maven.continuum.store.jpa;
 
 import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.model.project.ProjectGroup;
+import org.apache.maven.continuum.model.project.ProjectNotifier;
+import org.apache.maven.continuum.store.api.ProjectGroupQuery;
+import org.apache.maven.continuum.store.api.ProjectNotifierQuery;
 import org.apache.maven.continuum.store.api.ProjectQuery;
 import org.apache.maven.continuum.store.api.Store;
 
@@ -15,12 +19,37 @@
 public class JpaStoreFactory
 {
 
+    /**
+     * Store instance that services executes requests on underlying store for {@link Project} entities.
+     */
     private final JpaStore<Project, ProjectQuery<Project>> JPA_PROJECT_STORE =
         new JpaStore<Project, ProjectQuery<Project>>();
 
-    public Store<Project, ProjectQuery<Project>> createProjectStoreInstance()
+    /**
+     * Store instance that services executes requests on underlying store for {@link ProjectGroup} entities.
+     */
+    private final JpaStore<ProjectGroup, ProjectGroupQuery<ProjectGroup>> JPA_PROJECT_GROUP_STORE =
+        new JpaStore<ProjectGroup, ProjectGroupQuery<ProjectGroup>>();
+
+    /**
+     * Store instance that services executes requests on underlying store for {@link ProjectNotifier} entities.
+     */
+    private final JpaStore<ProjectNotifier, ProjectNotifierQuery<ProjectNotifier>> JPA_PROJECT_NOTIFIER_STORE =
+        new JpaStore<ProjectNotifier, ProjectNotifierQuery<ProjectNotifier>>();
+
+    public Store<Project, ProjectQuery<Project>> createProjectGroupStoreInstance()
     {
         return JPA_PROJECT_STORE;
+    }
+
+    public Store<ProjectGroup, ProjectGroupQuery<ProjectGroup>> createProjectStoreInstance()
+    {
+        return JPA_PROJECT_GROUP_STORE;
+    }
+
+    public Store<ProjectNotifier, ProjectNotifierQuery<ProjectNotifier>> createProjectNotifierStoreInstance()
+    {
+        return JPA_PROJECT_NOTIFIER_STORE;
     }
 
 }

Modified: maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/jpa/StoreSupport.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/jpa/StoreSupport.java?rev=602307&r1=602306&r2=602307&view=diff
==============================================================================
--- maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/jpa/StoreSupport.java (original)
+++ maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/main/java/org/apache/maven/continuum/store/jpa/StoreSupport.java Fri Dec  7 19:31:13 2007
@@ -11,12 +11,9 @@
 import javax.persistence.PersistenceException;
 import javax.persistence.Query;
 
-import org.apache.maven.continuum.model.CommonPersistableEntity;
-import org.apache.maven.continuum.store.api.EntityNotFoundException;
 import org.apache.maven.continuum.store.api.Store;
 import org.springframework.dao.DataAccessException;
 import org.springframework.orm.jpa.JpaCallback;
-import org.springframework.orm.jpa.JpaObjectRetrievalFailureException;
 import org.springframework.orm.jpa.support.JpaDaoSupport;
 
 /**

Modified: maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/ApplicationContextAwareStoreTestCase.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/ApplicationContextAwareStoreTestCase.java?rev=602307&r1=602306&r2=602307&view=diff
==============================================================================
--- maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/ApplicationContextAwareStoreTestCase.java (original)
+++ maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/ApplicationContextAwareStoreTestCase.java Fri Dec  7 19:31:13 2007
@@ -14,6 +14,7 @@
 import java.util.List;
 
 import org.apache.maven.continuum.model.CommonPersistableEntity;
+import org.apache.maven.continuum.model.CommonUpdatableEntity;
 import org.apache.maven.continuum.store.api.Query;
 import org.apache.maven.continuum.store.api.Store;
 import org.apache.openjpa.persistence.test.SingleEMTestCase;
@@ -165,7 +166,7 @@
      * @return
      */
     @SuppressWarnings( "unchecked" )
-    protected <T extends CommonPersistableEntity, Q extends Query<T>> Store<T, Q> getStore( String storeBeanReference )
+    protected <T extends CommonUpdatableEntity, Q extends Query<T>> Store<T, Q> getStore( String storeBeanReference )
     {
         Object store = this.applicationContext.getBean( storeBeanReference );
         return (Store<T, Q>) store;

Modified: maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaProjectGroupStoreTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaProjectGroupStoreTest.java?rev=602307&r1=602306&r2=602307&view=diff
==============================================================================
--- maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaProjectGroupStoreTest.java (original)
+++ maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaProjectGroupStoreTest.java Fri Dec  7 19:31:13 2007
@@ -81,7 +81,7 @@
     @Test
     public void testLookupProjectGroup() throws EntityNotFoundException, StoreException
     {
-        ProjectGroup projectGroup = getProjectGroupStore().lookup( null, 1000L );
+        ProjectGroup projectGroup = getProjectGroupStore().lookup( ProjectGroup.class, 1000L );
         Assert.assertNotNull( projectGroup );
         Assert.assertEquals( 1000L, projectGroup.getId().longValue() );
         Assert.assertEquals( "Continuum Projects", projectGroup.getName() );
@@ -93,7 +93,7 @@
     {
         try
         {
-            ProjectGroup projectGroup = getProjectGroupStore().lookup( null, 99999L );
+            ProjectGroup projectGroup = getProjectGroupStore().lookup( ProjectGroup.class, 99999L );
             Assert.fail( "Expected " + EntityNotFoundException.class.getSimpleName()
                             + " on account of an invalid ProjectGroup Id." );
         }
@@ -132,9 +132,9 @@
      * 
      * @return
      */
-    private Store<ProjectGroup, ProjectGroupQuery> getProjectGroupStore()
+    private Store<ProjectGroup, ProjectGroupQuery<ProjectGroup>> getProjectGroupStore()
     {
-        Store<ProjectGroup, ProjectGroupQuery> store = getStore( BEAN_REF__PROJECT_GROUP_STORE );
+        Store<ProjectGroup, ProjectGroupQuery<ProjectGroup>> store = getStore( BEAN_REF__PROJECT_GROUP_STORE );
         return store;
     }
 

Modified: maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaProjectNotifierStoreTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaProjectNotifierStoreTest.java?rev=602307&r1=602306&r2=602307&view=diff
==============================================================================
--- maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaProjectNotifierStoreTest.java (original)
+++ maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaProjectNotifierStoreTest.java Fri Dec  7 19:31:13 2007
@@ -7,6 +7,7 @@
 import java.util.List;
 import java.util.Properties;
 
+import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.project.ProjectNotifier;
 import org.apache.maven.continuum.store.ApplicationContextAwareStoreTestCase;
 import org.apache.maven.continuum.store.api.ProjectNotifierQuery;
@@ -60,16 +61,25 @@
     public void testCreateProjectNotifier() throws StoreException
     {
         ProjectNotifier notifier = new ProjectNotifier();
-        notifier.setModelEncoding( "UTF-8" );        
+        notifier.setModelEncoding( "UTF-8" );
         Assert.assertTrue( null == notifier.getId() );
         notifier = getProjectNotifierStore().save( notifier );
         Assert.assertTrue( null != notifier.getId() );
-        Assert.assertTrue( notifier.getId() > 0L );        
+        Assert.assertTrue( notifier.getId() > 0L );
     }
 
-    private Store<ProjectNotifier, ProjectNotifierQuery> getProjectNotifierStore()
+    @Test
+    public void testLookupProjectNotifier() throws StoreException
+    {
+        ProjectNotifier notifier = getProjectNotifierStore().lookup( ProjectNotifier.class, 100L );
+        Assert.assertNotNull( notifier );
+        Assert.assertTrue( notifier.getId() > 0L );
+    }
+
+    private Store<ProjectNotifier, ProjectNotifierQuery<ProjectNotifier>> getProjectNotifierStore()
     {
-        Store<ProjectNotifier, ProjectNotifierQuery> store = getStore( BEAN_REF__PROJECT_NOTIFIER_STORE );
+        Store<ProjectNotifier, ProjectNotifierQuery<ProjectNotifier>> store =
+            getStore( BEAN_REF__PROJECT_NOTIFIER_STORE );
         return store;
     }
 }

Modified: maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaProjectStoreTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaProjectStoreTest.java?rev=602307&r1=602306&r2=602307&view=diff
==============================================================================
--- maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaProjectStoreTest.java (original)
+++ maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaProjectStoreTest.java Fri Dec  7 19:31:13 2007
@@ -77,6 +77,14 @@
         Assert.assertTrue( project.getId() > 0L );
     }
 
+    @Test
+    public void testLookupProject() throws StoreException
+    {
+        Project project = getProjectStore().lookup( Project.class, 100L );
+        Assert.assertNotNull( project );
+        Assert.assertTrue( project.getId() > 0L );
+    }
+
     @Override
     @After
     public void tearDown() throws Exception

Modified: maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaStoreTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaStoreTest.java?rev=602307&r1=602306&r2=602307&view=diff
==============================================================================
--- maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaStoreTest.java (original)
+++ maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/java/org/apache/maven/continuum/store/jpa/JpaStoreTest.java Fri Dec  7 19:31:13 2007
@@ -67,9 +67,9 @@
         Assert.assertTrue( notifier.getId() > 0L );
     }
 
-    private Store<ProjectNotifier, ProjectNotifierQuery> getProjectNotifierStore()
+    private Store<ProjectNotifier, ProjectNotifierQuery<ProjectNotifier>> getProjectNotifierStore()
     {
-        Store<ProjectNotifier, ProjectNotifierQuery> store = getStore( BEAN_REF__PROJECT_STORE );
+        Store<ProjectNotifier, ProjectNotifierQuery<ProjectNotifier>> store = getStore( BEAN_REF__PROJECT_STORE );
         return store;
     }
 }

Modified: maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/resources/META-INF/spring-config.xml
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/resources/META-INF/spring-config.xml?rev=602307&r1=602306&r2=602307&view=diff
==============================================================================
--- maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/resources/META-INF/spring-config.xml (original)
+++ maven/continuum/branches/continuum-jpa/continuum-model-jpa/src/test/resources/META-INF/spring-config.xml Fri Dec  7 19:31:13 2007
@@ -1,7 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-  - Middle tier application context definition for the image database.
--->
+
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
@@ -30,59 +28,28 @@
     </property>
   </bean>
 
-  <!-- 
-  <bean id="projectStoreTarget"
-    class="org.apache.maven.continuum.store.jpa.JpaProjectStore">
-    <property name="entityManagerFactory" ref="entityManagerFactory" />
+  <bean id="storeFactory"
+    class="org.apache.maven.continuum.store.jpa.JpaStoreFactory">
   </bean>
 
   <bean id="projectStore"
-    class="org.springframework.aop.framework.ProxyFactoryBean">
-    <property name="targetName" value="projectStoreTarget" />
-    <property name="autodetectInterfaces" value="true" />
-    <property name="interceptorNames">
-      <idref local="transactionInterceptor" />
-    </property>
-  </bean>
-
-  <bean id="projectGroupStoreTarget"
-    class="org.apache.maven.continuum.store.jpa.JpaProjectGroupStore">
+    class="org.apache.maven.continuum.store.jpa.JpaStore"
+    factory-bean="storeFactory"
+    factory-method="createProjectStoreInstance">
     <property name="entityManagerFactory" ref="entityManagerFactory" />
   </bean>
 
   <bean id="projectGroupStore"
-    class="org.springframework.aop.framework.ProxyFactoryBean">
-    <property name="targetName" value="projectGroupStoreTarget" />
-    <property name="autodetectInterfaces" value="true" />
-    <property name="interceptorNames">
-      <idref local="transactionInterceptor" />
-    </property>
-  </bean>
-
-  <bean id="projectNotifierStoreTarget"
-    class="org.apache.maven.continuum.store.jpa.JpaProjectNotifierStore">
+    class="org.apache.maven.continuum.store.jpa.JpaStore"
+    factory-bean="storeFactory"
+    factory-method="createProjectGroupStoreInstance">
     <property name="entityManagerFactory" ref="entityManagerFactory" />
   </bean>
 
   <bean id="projectNotifierStore"
-    class="org.springframework.aop.framework.ProxyFactoryBean">
-    <property name="targetName" value="projectNotifierStoreTarget" />
-    <property name="autodetectInterfaces" value="true" />
-    <property name="interceptorNames">
-      <idref local="transactionInterceptor" />
-    </property>
-  </bean>
-  -->
-
-  <bean id="projectStoreFactory"
-    class="org.apache.maven.continuum.store.jpa.JpaStoreFactory">
-  </bean>
-  
-   <bean id="projectStore"
     class="org.apache.maven.continuum.store.jpa.JpaStore"
-    factory-bean="projectStoreFactory"
-    factory-method="createProjectStoreInstance"    
-    >    
+    factory-bean="storeFactory"
+    factory-method="createProjectNotifierStoreInstance">
     <property name="entityManagerFactory" ref="entityManagerFactory" />
   </bean>