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 2006/12/24 06:08:06 UTC

svn commit: r489982 - /maven/continuum/branches/key-based-refactor/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java

Author: rinku
Date: Sat Dec 23 21:08:05 2006
New Revision: 489982

URL: http://svn.apache.org/viewvc?view=rev&rev=489982
Log:
o  updates for refactoring done to ContinuumStore interface.

Modified:
    maven/continuum/branches/key-based-refactor/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java

Modified: maven/continuum/branches/key-based-refactor/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/key-based-refactor/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java?view=diff&rev=489982&r1=489981&r2=489982
==============================================================================
--- maven/continuum/branches/key-based-refactor/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java (original)
+++ maven/continuum/branches/key-based-refactor/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java Sat Dec 23 21:08:05 2006
@@ -16,6 +16,24 @@
  * limitations under the License.
  */
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.jdo.Extent;
+import javax.jdo.FetchPlan;
+import javax.jdo.JDOHelper;
+import javax.jdo.JDOUserException;
+import javax.jdo.PersistenceManager;
+import javax.jdo.PersistenceManagerFactory;
+import javax.jdo.Query;
+import javax.jdo.Transaction;
+
+import org.apache.maven.continuum.key.GroupProjectKey;
 import org.apache.maven.continuum.model.project.BuildDefinition;
 import org.apache.maven.continuum.model.project.BuildResult;
 import org.apache.maven.continuum.model.project.Profile;
@@ -41,22 +59,6 @@
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
 
-import javax.jdo.Extent;
-import javax.jdo.FetchPlan;
-import javax.jdo.JDOHelper;
-import javax.jdo.JDOUserException;
-import javax.jdo.PersistenceManager;
-import javax.jdo.PersistenceManagerFactory;
-import javax.jdo.Query;
-import javax.jdo.Transaction;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
@@ -67,6 +69,21 @@
     extends AbstractContinuumStore
     implements ContinuumStore, Initializable
 {
+
+    /**
+     * Column identifier under which the {@link ProjectGroup} key values are stored.
+     * <p>
+     * @see Modello configuration for continuum-model. 
+     */
+    private static final String LOOKUP_KEY_GROUP_KEY = "groupKey";
+
+    /**
+     * Column identifier under which the {@link Project} key values are stored.
+     * <p>
+     * @see Modello configuration for continuum-model. 
+     */
+    private static final String LOOKUP_KEY_PROJECT_KEY = "projectKey";
+
     /**
      * @plexus.requirement role-hint="continuum"
      */
@@ -225,10 +242,12 @@
         // might define their own build definitions
         if ( projectGroupSource != null )
         {
-        	for ( Iterator i = projectGroupSource.keySet().iterator(); i.hasNext(); )
+            for ( Iterator i = projectGroupSource.keySet().iterator(); i.hasNext(); )
             {
                 Integer projectGroupId = (Integer) i.next();
-                List projectsInGroup = getProjectsInGroup( projectGroupId.intValue() );
+                // FIXME: Need to check with Jesse and refactor this to use GroupProjectKey                
+                //List projectsInGroup = getProjectsInGroup( projectGroupId.intValue() );
+                List projectsInGroup = getProjectsInGroup( null );
 
                 for ( Iterator j = projectsInGroup.iterator(); j.hasNext(); )
                 {
@@ -240,7 +259,7 @@
                 }
             }
         }
-        
+
         return aggregate;
     }
 
@@ -445,7 +464,7 @@
         }
     }
 
-    public BuildResult getLatestBuildResultForProject( int projectId )
+    public BuildResult getLatestBuildResultForProject( GroupProjectKey groupProjectKey )
     {
         PersistenceManager pm = getPersistenceManager();
 
@@ -459,11 +478,13 @@
 
             Query query = pm.newQuery( extent );
 
-            query.declareParameters( "int projectId" );
+            //query.declareParameters( "int projectId" );
+            query.declareParameters( "String projectKey" );
 
-            query.setFilter( "this.project.id == projectId && this.project.latestBuildId == this.id" );
+            //query.setFilter( "this.project.id == projectId && this.project.latestBuildId == this.id" );
+            query.setFilter( "this.project.key == projectKey && this.project.latestBuildId == this.id" );
 
-            List result = (List) query.execute( new Integer( projectId ) );
+            List result = (List) query.execute( groupProjectKey.getProjectKey() );
 
             result = (List) pm.detachCopyAll( result );
 
@@ -539,7 +560,7 @@
         return notifier;
     }
 
-    public BuildDefinition getDefaultBuildDefinition( int projectId )
+    public BuildDefinition getDefaultBuildDefinition( GroupProjectKey groupProjectKey )
         throws ContinuumStoreException, ContinuumObjectNotFoundException
     {
 
@@ -547,7 +568,7 @@
 
         try
         {
-            bd = getDefaultBuildDefinitionForProject( projectId );
+            bd = getDefaultBuildDefinitionForProject( groupProjectKey );
         }
         catch ( ContinuumObjectNotFoundException cne )
         {
@@ -558,22 +579,23 @@
         //project group should have default build definition defined
         if ( bd == null )
         {
-            ProjectGroup projectGroup = getProjectGroupByProjectId( projectId );
+            //ProjectGroup projectGroup = getProjectGroupByProjectId( groupProjectKey );
 
-            bd = getDefaultBuildDefinitionForProjectGroup( projectGroup.getId() );
+            //bd = getDefaultBuildDefinitionForProjectGroup( projectGroup.getId() );
+            bd = getDefaultBuildDefinitionForProjectGroup( groupProjectKey );
         }
 
         return bd;
     }
 
-    public BuildDefinition getDefaultBuildDefinitionForProject( int projectId )
+    public BuildDefinition getDefaultBuildDefinitionForProject( GroupProjectKey groupProjectKey )
         throws ContinuumStoreException, ContinuumObjectNotFoundException
     {
         Project project;
 
         try
         {
-            project = getProjectWithBuildDetails( projectId );
+            project = getProjectWithBuildDetails( groupProjectKey );
         }
         catch ( Exception e )
         {
@@ -594,14 +616,16 @@
             }
         }
 
-        throw new ContinuumObjectNotFoundException( "no default build definition declared for project " + projectId );
+        throw new ContinuumObjectNotFoundException( "no default build definition declared for project "
+            + groupProjectKey );
     }
 
-
     public BuildDefinition getDefaultBuildDefinitionForProjectGroup( String groupKey )
         throws ContinuumStoreException, ContinuumObjectNotFoundException
     {
-        ProjectGroup projectGroup = getProjectGroupWithBuildDetails( groupKey );
+        GroupProjectKey key = new GroupProjectKey();
+        key.setGroupKey( groupKey );
+        ProjectGroup projectGroup = getProjectGroupWithBuildDetails( key );
 
         for ( Iterator i = projectGroup.getBuildDefinitions().iterator(); i.hasNext(); )
         {
@@ -691,6 +715,21 @@
         return PlexusJdoUtils.makePersistent( pm, object, detach );
     }
 
+    /**
+     * Looks up and returns an Entity instance from the underlying store given 
+     * the String key and the field name to match it against.
+     * 
+     * @param clazz Expected {@link Class} of the entity being looked up. 
+     * @param idField Column identifier/name for the field in the underlying 
+     *          store to match the String identifier against.
+     * @param id Identifier value to match in the Id field.
+     * @param fetchGroup TODO: Document! What is a fetchGroup?
+     * @return Entity instance that matches the lookup criteria as specified by
+     *          the passed in Id.
+     * @throws ContinuumStoreException
+     * @throws ContinuumObjectNotFoundException if there was no instance that
+     *          matched the criteria in the underlying store. 
+     */
     private Object getObjectFromQuery( Class clazz, String idField, String id, String fetchGroup )
         throws ContinuumStoreException, ContinuumObjectNotFoundException
     {
@@ -725,7 +764,8 @@
     public ProjectGroup getProjectGroup( String groupKey )
         throws ContinuumStoreException, ContinuumObjectNotFoundException
     {
-        return (ProjectGroup) getObjectById( ProjectGroup.class, groupKey );
+        //return (ProjectGroup) getObjectById( ProjectGroup.class, groupKey );        
+        return (ProjectGroup) getObjectFromQuery( ProjectGroup.class, LOOKUP_KEY_GROUP_KEY, groupKey, null );
     }
 
     private Object getObjectById( Class clazz, int id )
@@ -802,7 +842,7 @@
         {
             Project project = (Project) i.next();
 
-            if ( project.getProjectGroup().getId() == groupKey )
+            if ( project.getProjectGroup().getKey().equals( groupKey ) )
             {
                 groupProjects.add( project );
             }
@@ -901,7 +941,7 @@
         return getAllObjectsDetached( Installation.class, "name ascending, version ascending", null );
     }
 
-    public List getAllBuildsForAProjectByDate( int projectId )
+    public List getAllBuildsForAProjectByDate( GroupProjectKey groupProjectKey )
     {
         PersistenceManager pm = getPersistenceManager();
 
@@ -911,14 +951,14 @@
         {
             tx.begin();
 
-            Query query = pm.newQuery( "SELECT FROM " + BuildResult.class.getName() +
-                " WHERE project.id == projectId PARAMETERS int projectId ORDER BY endTime DESC" );
+            Query query = pm.newQuery( "SELECT FROM " + BuildResult.class.getName()
+                + " WHERE project.key == projectKey PARAMETERS String projectKey ORDER BY endTime DESC" );
 
-            query.declareImports( "import java.lang.Integer" );
+            query.declareImports( "import java.lang.String" );
 
-            query.declareParameters( "Integer projectId" );
+            query.declareParameters( "String projectKey" );
 
-            List result = (List) query.execute( new Integer( projectId ) );
+            List result = (List) query.execute( groupProjectKey.getProjectKey() );
 
             result = (List) pm.detachCopyAll( result );
 
@@ -932,10 +972,12 @@
         }
     }
 
-    public Project getProject( int projectId )
+    public Project getProject( GroupProjectKey groupProjectKey )
         throws ContinuumStoreException, ContinuumObjectNotFoundException
     {
-        return (Project) getObjectById( Project.class, projectId );
+        //return (Project) getObjectById( Project.class, groupProjectKey );  
+        return (Project) getObjectFromQuery( Project.class, LOOKUP_KEY_PROJECT_KEY, groupProjectKey.getProjectKey(),
+                                             null );
     }
 
     public void updateProject( Project project )
@@ -956,10 +998,12 @@
         updateObject( schedule );
     }
 
-    public Project getProjectWithBuilds( int projectId )
+    public Project getProjectWithBuilds( GroupProjectKey groupProjectKey )
         throws ContinuumStoreException, ContinuumObjectNotFoundException
     {
-        return (Project) getObjectById( Project.class, projectId, PROJECT_WITH_BUILDS_FETCH_GROUP );
+        //return (Project) getObjectById( Project.class, groupProjectKey, PROJECT_WITH_BUILDS_FETCH_GROUP );
+        return (Project) getObjectFromQuery( Project.class, LOOKUP_KEY_PROJECT_KEY, groupProjectKey.getProjectKey(),
+                                             PROJECT_WITH_BUILDS_FETCH_GROUP );
     }
 
     public void removeProfile( Profile profile )
@@ -972,10 +1016,12 @@
         removeObject( schedule );
     }
 
-    public Project getProjectWithCheckoutResult( int projectId )
+    public Project getProjectWithCheckoutResult( GroupProjectKey groupProjectKey )
         throws ContinuumObjectNotFoundException, ContinuumStoreException
     {
-        return (Project) getObjectById( Project.class, projectId, PROJECT_WITH_CHECKOUT_RESULT_FETCH_GROUP );
+        // return (Project) getObjectById( Project.class, groupProjectkey, PROJECT_WITH_CHECKOUT_RESULT_FETCH_GROUP );
+        return (Project) getObjectFromQuery( Project.class, LOOKUP_KEY_PROJECT_KEY, groupProjectKey.getProjectKey(),
+                                             PROJECT_BUILD_DETAILS_FETCH_GROUP );
     }
 
     public BuildResult getBuildResult( int buildId )
@@ -984,7 +1030,7 @@
         return (BuildResult) getObjectById( BuildResult.class, buildId, BUILD_RESULT_WITH_DETAILS_FETCH_GROUP );
     }
 
-    public List getBuildResultByBuildNumber( int projectId, int buildNumber )
+    public List getBuildResultByBuildNumber( GroupProjectKey groupProjectKey, int buildNumber )
     {
         PersistenceManager pm = getPersistenceManager();
 
@@ -998,11 +1044,11 @@
 
             Query query = pm.newQuery( extent );
 
-            query.declareParameters( "int projectId, int buildNumber" );
+            query.declareParameters( "String  projectKey, int buildNumber" );
 
-            query.setFilter( "this.project.id == projectId && this.buildNumber == buildNumber" );
+            query.setFilter( "this.project.key == projectKey && this.buildNumber == buildNumber" );
 
-            List result = (List) query.execute( new Integer( projectId ), new Integer( buildNumber ) );
+            List result = (List) query.execute( groupProjectKey.getProjectKey(), new Integer( buildNumber ) );
 
             result = (List) pm.detachCopyAll( result );
 
@@ -1016,7 +1062,7 @@
         }
     }
 
-    public List getBuildResultsForProject( int projectId, long fromDate )
+    public List getBuildResultsForProject( GroupProjectKey groupProjectKey, long fromDate )
     {
         PersistenceManager pm = getPersistenceManager();
 
@@ -1032,11 +1078,11 @@
 
             Query query = pm.newQuery( extent );
 
-            query.declareParameters( "int projectId, long fromDate" );
+            query.declareParameters( "String projectKey, long fromDate" );
 
-            query.setFilter( "this.project.id == projectId && this.startTime > fromDate" );
+            query.setFilter( "this.project.key == projectKey && this.startTime > fromDate" );
 
-            List result = (List) query.execute( new Integer( projectId ), new Long( fromDate ) );
+            List result = (List) query.execute( groupProjectKey, new Long( fromDate ) );
 
             result = (List) pm.detachCopyAll( result );
 
@@ -1050,9 +1096,9 @@
         }
     }
 
-    public List getBuildResultsInSuccessForProject( int projectId, long fromDate )
+    public List getBuildResultsInSuccessForProject( GroupProjectKey groupProjectkey, long fromDate )
     {
-        List buildResults = getBuildResultsForProject( projectId, fromDate );
+        List buildResults = getBuildResultsForProject( groupProjectkey, fromDate );
 
         List results = new ArrayList();
 
@@ -1125,7 +1171,9 @@
         ProjectGroup pg = null;
         try
         {
-            pg = getProjectGroupWithProjects( projectGroup.getId() );
+            GroupProjectKey key = new GroupProjectKey();
+            key.setGroupKey( projectGroup.getKey() );
+            pg = getProjectGroupWithProjects( key );
         }
         catch ( Exception e )
         {
@@ -1143,7 +1191,7 @@
         }
     }
 
-    public List getProjectsInGroup( int projectGroupId )
+    public List getProjectsInGroup( GroupProjectKey groupProjectkey )
         throws ContinuumObjectNotFoundException, ContinuumStoreException
     {
         PersistenceManager pm = getPersistenceManager();
@@ -1156,7 +1204,7 @@
 
             Extent extent = pm.getExtent( Project.class, true );
 
-            Query query = pm.newQuery( extent, "projectGroup.id == " + projectGroupId );
+            Query query = pm.newQuery( extent, "projectGroup.id == " + groupProjectkey );
 
             query.setOrdering( "name ascending" );
 
@@ -1176,16 +1224,18 @@
         }
     }
 
-    public ProjectGroup getProjectGroupWithProjects( int projectGroupId )
+    public ProjectGroup getProjectGroupWithProjects( GroupProjectKey groupProjectKey )
         throws ContinuumObjectNotFoundException, ContinuumStoreException
     {
-        return (ProjectGroup) getObjectById( ProjectGroup.class, projectGroupId, PROJECTGROUP_PROJECTS_FETCH_GROUP );
+        return (ProjectGroup) getObjectFromQuery( ProjectGroup.class, LOOKUP_KEY_GROUP_KEY, groupProjectKey
+            .getGroupKey(), PROJECTGROUP_PROJECTS_FETCH_GROUP );
     }
 
-    public ProjectGroup getProjectGroupWithBuildDetails( int projectGroupId )
+    public ProjectGroup getProjectGroupWithBuildDetails( GroupProjectKey groupProjectKey )
         throws ContinuumObjectNotFoundException, ContinuumStoreException
     {
-        return (ProjectGroup) getObjectById( ProjectGroup.class, projectGroupId, PROJECT_BUILD_DETAILS_FETCH_GROUP );
+        return (ProjectGroup) getObjectFromQuery( ProjectGroup.class, LOOKUP_KEY_GROUP_KEY, groupProjectKey
+            .getGroupKey(), PROJECT_BUILD_DETAILS_FETCH_GROUP );
     }
 
     public List getAllProjectGroupsWithBuildDetails()
@@ -1198,10 +1248,11 @@
         return getAllObjectsDetached( Project.class, "name ascending", PROJECT_ALL_DETAILS_FETCH_GROUP );
     }
 
-    public Project getProjectWithAllDetails( int projectId )
+    public Project getProjectWithAllDetails( GroupProjectKey groupProjectKey )
         throws ContinuumObjectNotFoundException, ContinuumStoreException
     {
-        return (Project) getObjectById( Project.class, projectId, PROJECT_ALL_DETAILS_FETCH_GROUP );
+        return (Project) getObjectFromQuery( Project.class, LOOKUP_KEY_PROJECT_KEY, groupProjectKey.getProjectKey(),
+                                             PROJECT_ALL_DETAILS_FETCH_GROUP );
     }
 
     public Schedule getSchedule( int scheduleId )
@@ -1266,33 +1317,41 @@
         return PlexusJdoUtils.addObject( pmf, object );
     }
 
-    public ProjectGroup getProjectGroupByGroupId( String groupId )
+    public ProjectGroup getProjectGroupByGroupId( GroupProjectKey groupProjectKey )
         throws ContinuumStoreException, ContinuumObjectNotFoundException
     {
-        return (ProjectGroup) getObjectFromQuery( ProjectGroup.class, "groupId", groupId, null );
+        //return (ProjectGroup) getObjectFromQuery( ProjectGroup.class, "groupId", groupProjectKey, null );
+        return (ProjectGroup) getObjectFromQuery( ProjectGroup.class, LOOKUP_KEY_GROUP_KEY, groupProjectKey
+            .getGroupKey(), PROJECT_BUILD_DETAILS_FETCH_GROUP );
     }
 
-    public ProjectGroup getProjectGroupByGroupIdWithBuildDetails( String groupId )
+    public ProjectGroup getProjectGroupByGroupIdWithBuildDetails( GroupProjectKey groupProjectKey )
         throws ContinuumStoreException, ContinuumObjectNotFoundException
     {
-        return (ProjectGroup) getObjectFromQuery( ProjectGroup.class, "groupId", groupId,
-                                                  PROJECT_BUILD_DETAILS_FETCH_GROUP );
+        //return (ProjectGroup) getObjectFromQuery( ProjectGroup.class, "groupId", groupProjectKey,
+        //                                          PROJECT_BUILD_DETAILS_FETCH_GROUP );
+        return (ProjectGroup) getObjectFromQuery( ProjectGroup.class, LOOKUP_KEY_GROUP_KEY, groupProjectKey
+            .getGroupKey(), PROJECT_BUILD_DETAILS_FETCH_GROUP );
     }
 
-    public ProjectGroup getProjectGroupByGroupIdWithProjects( String groupId )
+    public ProjectGroup getProjectGroupByGroupIdWithProjects( GroupProjectKey groupProjectKey )
         throws ContinuumStoreException, ContinuumObjectNotFoundException
     {
-        return (ProjectGroup) getObjectFromQuery( ProjectGroup.class, "groupId", groupId,
-                                                  PROJECTGROUP_PROJECTS_FETCH_GROUP );
+        //return (ProjectGroup) getObjectFromQuery( ProjectGroup.class, "groupId", groupProjectKey,
+        //                                          PROJECTGROUP_PROJECTS_FETCH_GROUP );
+        return (ProjectGroup) getObjectFromQuery( ProjectGroup.class, LOOKUP_KEY_GROUP_KEY, groupProjectKey
+            .getGroupKey(), PROJECTGROUP_PROJECTS_FETCH_GROUP );
     }
 
-    public Project getProjectWithBuildDetails( int projectId )
+    public Project getProjectWithBuildDetails( GroupProjectKey groupProjectKey )
         throws ContinuumObjectNotFoundException, ContinuumStoreException
     {
-        return (Project) getObjectById( Project.class, projectId, PROJECT_BUILD_DETAILS_FETCH_GROUP );
+        //return (Project) getObjectById( Project.class, groupProjectKey, PROJECT_BUILD_DETAILS_FETCH_GROUP );
+        return (Project) getObjectFromQuery( Project.class, LOOKUP_KEY_PROJECT_KEY, groupProjectKey.getProjectKey(),
+                                             PROJECT_BUILD_DETAILS_FETCH_GROUP );
     }
 
-    public ProjectGroup getProjectGroupByProjectId( int projectId )
+    public ProjectGroup getProjectGroupByProjectId( GroupProjectKey groupProjectKey )
         throws ContinuumObjectNotFoundException
     {
         // todo this chunk should be optimized in the store by a good query
@@ -1306,15 +1365,15 @@
             {
                 Project project = (Project) j.next();
 
-                if ( projectId == project.getId() )
+                if ( groupProjectKey.getProjectKey().equals( project.getKey() ) )
                 {
                     return projectGroup;
                 }
             }
         }
 
-        throw new ContinuumObjectNotFoundException(
-            "unable to find project group containing project with id: " + projectId );
+        throw new ContinuumObjectNotFoundException( "unable to find project group containing project with id: "
+            + groupProjectKey );
     }
 
     public SystemConfiguration addSystemConfiguration( SystemConfiguration systemConf )
@@ -1340,7 +1399,7 @@
         else if ( systemConfs.size() > 1 )
         {
             throw new ContinuumStoreException(
-                "Database is corrupted. There are more than one systemConfiguration object." );
+                                               "Database is corrupted. There are more than one systemConfiguration object." );
         }
         else
         {
@@ -1370,10 +1429,13 @@
 
     public Collection getAllProjectGroupsWithTheLot()
     {
-        List fetchGroups = Arrays.asList( new String[]{PROJECT_WITH_BUILDS_FETCH_GROUP,
-            PROJECTGROUP_PROJECTS_FETCH_GROUP, BUILD_RESULT_WITH_DETAILS_FETCH_GROUP,
-            PROJECT_WITH_CHECKOUT_RESULT_FETCH_GROUP, PROJECT_ALL_DETAILS_FETCH_GROUP,
-            PROJECT_BUILD_DETAILS_FETCH_GROUP} );
+        List fetchGroups = Arrays.asList( new String[] {
+            PROJECT_WITH_BUILDS_FETCH_GROUP,
+            PROJECTGROUP_PROJECTS_FETCH_GROUP,
+            BUILD_RESULT_WITH_DETAILS_FETCH_GROUP,
+            PROJECT_WITH_CHECKOUT_RESULT_FETCH_GROUP,
+            PROJECT_ALL_DETAILS_FETCH_GROUP,
+            PROJECT_BUILD_DETAILS_FETCH_GROUP } );
         return PlexusJdoUtils.getAllObjectsDetached( getPersistenceManager(), ProjectGroup.class, "name ascending",
                                                      fetchGroups );
     }
@@ -1441,4 +1503,42 @@
             }
         }
     }
+
+    // added after latest refactoring for keys
+
+    /**
+     * {@inheritDoc}
+     * 
+     * @see org.apache.maven.continuum.store.ContinuumStore#getDefaultBuildDefinitionForProjectGroup(org.apache.maven.continuum.key.GroupProjectKey)
+     */
+    public BuildDefinition getDefaultBuildDefinitionForProjectGroup( GroupProjectKey groupProjectKey )
+        throws ContinuumStoreException, ContinuumObjectNotFoundException
+    {
+        // TODO Implement!
+        return null;
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * @see org.apache.maven.continuum.store.ContinuumStore#getProjectGroup(org.apache.maven.continuum.key.GroupProjectKey)
+     */
+    public ProjectGroup getProjectGroup( GroupProjectKey groupProjectKey )
+        throws ContinuumStoreException, ContinuumObjectNotFoundException
+    {
+        // TODO Implement!
+        return null;
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * @see org.apache.maven.continuum.store.ContinuumStore#getProjectsWithDependenciesByGroupId(org.apache.maven.continuum.key.GroupProjectKey)
+     */
+    public List getProjectsWithDependenciesByGroupId( GroupProjectKey groupProjectKey )
+    {
+        // TODO Implement!
+        return null;
+    }
+
 }