You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by tr...@apache.org on 2005/06/19 23:08:41 UTC

svn commit: r191364 - in /maven/continuum/trunk: ./ continuum-api/src/main/java/org/apache/maven/continuum/store/ continuum-core/ continuum-core/src/main/java/org/apache/maven/continuum/ continuum-core/src/main/java/org/apache/maven/continuum/core/ con...

Author: trygvis
Date: Sun Jun 19 14:08:39 2005
New Revision: 191364

URL: http://svn.apache.org/viewcvs?rev=191364&view=rev
Log: (empty)

Modified:
    maven/continuum/trunk/build.bat
    maven/continuum/trunk/build.sh
    maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java
    maven/continuum/trunk/continuum-core/pom.xml
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/ContinuumCore.java
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/DefaultContinuumCore.java
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/DefaultMavenOneMetadataHelper.java
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/ContinuumRecipientSource.java
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/ModelloJPoxContinuumStore.java
    maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/ContinuumJPoxStoreTest.java
    maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/ModelloJPoxContinuumStoreTest.java
    maven/continuum/trunk/continuum-model/src/main/resources/continuum.mdo
    maven/continuum/trunk/pom.xml

Modified: maven/continuum/trunk/build.bat
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/build.bat?rev=191364&r1=191363&r2=191364&view=diff
==============================================================================
--- maven/continuum/trunk/build.bat (original)
+++ maven/continuum/trunk/build.bat Sun Jun 19 14:08:39 2005
@@ -32,6 +32,9 @@
 SET INCLUDES=continuum-api/pom.xml,continuum-cc/pom.xml,continuum-core/pom.xml,continuum-model/pom.xml,continuum-notifiers/pom.xml,continuum-notifiers/continuum-jabber-notifier/pom.xml,continuum-notifiers/continuum-msn-notifier/pom.xml,continuum-web/pom.xml,continuum-xmlrpc/pom.xml
 
 call m2 -N install %MAVEN_CMD_LINE_ARGS%
+cd continuum-notifiers
+call m2 -N install %MAVEN_CMD_LINE_ARGS%
+cd ..
 call m2 -r -Dmaven.reactor.includes=*/pom.xml clean:clean %MAVEN_CMD_LINE_ARGS%
 call m2 -r -Dmaven.reactor.includes="%INCLUDES%" install %MAVEN_CMD_LINE_ARGS%
 cd continuum-plexus-application

Modified: maven/continuum/trunk/build.sh
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/build.sh?rev=191364&r1=191363&r2=191364&view=diff
==============================================================================
--- maven/continuum/trunk/build.sh (original)
+++ maven/continuum/trunk/build.sh Sun Jun 19 14:08:39 2005
@@ -16,6 +16,7 @@
 
 (
   m2 -N install "$@"
+  (cd continuum-notifiers && m2 -N install "$@" )
   m2 -r -Dmaven.reactor.includes=*/pom.xml clean:clean "$@"
   m2 -r -Dmaven.reactor.includes="$includes" install "$@"
   (cd continuum-plexus-application && sh build.sh "$@")

Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java?rev=191364&r1=191363&r2=191364&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java (original)
+++ maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java Sun Jun 19 14:08:39 2005
@@ -49,13 +49,13 @@
     void updateProject( ContinuumProject project )
         throws ContinuumStoreException;
 
-    void updateProject( String projectId,
-                        String name,
-                        String scmUrl,
-                        List notifiers,
-                        String version,
-                        String commandLineArguments )
-        throws ContinuumStoreException;
+//    void updateProject( String projectId,
+//                        String name,
+//                        String scmUrl,
+//                        List notifiers,
+//                        String version,
+//                        String commandLineArguments )
+//        throws ContinuumStoreException;
 
     // ----------------------------------------------------------------------
     // ContinuumProject Queries

Modified: maven/continuum/trunk/continuum-core/pom.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/pom.xml?rev=191364&r1=191363&r2=191364&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/pom.xml (original)
+++ maven/continuum/trunk/continuum-core/pom.xml Sun Jun 19 14:08:39 2005
@@ -18,6 +18,10 @@
       <groupId>org.apache.maven.continuum</groupId>
       <artifactId>continuum-api</artifactId>
     </dependency>
+    <dependency>
+      <groupId>jpox</groupId>
+      <artifactId>jpox</artifactId>
+    </dependency>
     <!--
      |
      | Plexus Dependencies

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=191364&r1=191363&r2=191364&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java Sun Jun 19 14:08:39 2005
@@ -482,11 +482,12 @@
     private void updateProject( ContinuumProject project )
         throws ContinuumException
     {
-        core.updateProject( project.getId(),
-                            project.getName(),
-                            project.getScmUrl(),
-                            project.getNotifiers(),
-                            project.getVersion(),
-                            project.getCommandLineArguments() );
+        core.updateProject( project );
+//        core.updateProject( project.getId(),
+//                            project.getName(),
+//                            project.getScmUrl(),
+//                            project.getNotifiers(),
+//                            project.getVersion(),
+//                            project.getCommandLineArguments() );
     }
 }

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/ContinuumCore.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/ContinuumCore.java?rev=191364&r1=191363&r2=191364&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/ContinuumCore.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/ContinuumCore.java Sun Jun 19 14:08:39 2005
@@ -56,13 +56,16 @@
     void updateProjectFromScm( String projectId )
         throws ContinuumException;
 
-    void updateProject( String projectId,
-                        String name,
-                        String scmUrl,
-                        List notifiers,
-                        String version,
-                        String commandLineArguments )
+    void updateProject( ContinuumProject project )
         throws ContinuumException;
+
+//    void updateProject( String projectId,
+//                        String name,
+//                        String scmUrl,
+//                        List notifiers,
+//                        String version,
+//                        String commandLineArguments )
+//        throws ContinuumException;
 
     ContinuumProject getProject( String projectId )
         throws ContinuumException;

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/DefaultContinuumCore.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/DefaultContinuumCore.java?rev=191364&r1=191363&r2=191364&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/DefaultContinuumCore.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/DefaultContinuumCore.java Sun Jun 19 14:08:39 2005
@@ -234,6 +234,19 @@
         return project.getId();
     }
 
+    public void removeProject( String projectId )
+        throws ContinuumException
+    {
+        try
+        {
+            store.removeProject( projectId );
+        }
+        catch ( ContinuumStoreException ex )
+        {
+            throw logAndCreateException( "Error while removing project.", ex );
+        }
+    }
+
     public void updateProjectFromScm( String projectId )
         throws ContinuumException
     {
@@ -277,44 +290,45 @@
         updateProjectFromCheckOut( project );
     }
 
-    public void updateProject( String projectId,
-                               String name,
-                               String scmUrl,
-                               List notifiers,
-                               String version,
-                               String commandLineArguments )
+    public void updateProject( ContinuumProject project )
         throws ContinuumException
     {
         try
         {
-            commandLineArguments = StringUtils.clean( commandLineArguments );
-
-            store.updateProject( projectId,
-                                 name,
-                                 scmUrl,
-                                 notifiers,
-                                 version,
-                                 commandLineArguments );
-        }
-        catch ( ContinuumStoreException e )
-        {
-            throw logAndCreateException( "Error while updating the project.", e );
-        }
-    }
-
-    public void removeProject( String projectId )
-        throws ContinuumException
-    {
-        try
-        {
-            store.removeProject( projectId );
+            store.updateProject( project );
         }
         catch ( ContinuumStoreException ex )
         {
             throw logAndCreateException( "Error while removing project.", ex );
         }
+
     }
 
+//    public void updateProject( String projectId,
+//                               String name,
+//                               String scmUrl,
+//                               List notifiers,
+//                               String version,
+//                               String commandLineArguments )
+//        throws ContinuumException
+//    {
+//        try
+//        {
+//            commandLineArguments = StringUtils.clean( commandLineArguments );
+//
+//            store.updateProject( projectId,
+//                                 name,
+//                                 scmUrl,
+//                                 notifiers,
+//                                 version,
+//                                 commandLineArguments );
+//        }
+//        catch ( ContinuumStoreException e )
+//        {
+//            throw logAndCreateException( "Error while updating the project.", e );
+//        }
+//    }
+
     public ContinuumProject getProject( String projectId )
         throws ContinuumException
     {
@@ -597,9 +611,6 @@
     {
         getLogger().info( "Updating project '" + project.getName() + "'." );
 
-        // Save the ID now in case the builder fucks it up
-        String id = project.getId();
-
         // ----------------------------------------------------------------------
         // Make a new descriptor
         // ----------------------------------------------------------------------
@@ -621,12 +632,14 @@
 
         try
         {
-            store.updateProject( id,
-                                 project.getName(),
-                                 project.getScmUrl(),
-                                 project.getNotifiers(),
-                                 project.getVersion(),
-                                 project.getCommandLineArguments() );
+//            store.updateProject( id,
+//                                 project.getName(),
+//                                 project.getScmUrl(),
+//                                 project.getNotifiers(),
+//                                 project.getVersion(),
+//                                 project.getCommandLineArguments() );
+
+            store.updateProject( project );
         }
         catch ( ContinuumStoreException e )
         {

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/DefaultMavenOneMetadataHelper.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/DefaultMavenOneMetadataHelper.java?rev=191364&r1=191363&r2=191364&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/DefaultMavenOneMetadataHelper.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/DefaultMavenOneMetadataHelper.java Sun Jun 19 14:08:39 2005
@@ -119,7 +119,7 @@
         else
         {
             String currentNagEmailAddress = null;
-            
+
             if ( project.getNotifiers() != null && !project.getNotifiers().isEmpty() )
             {
                 for ( Iterator i = project.getNotifiers().iterator(); i.hasNext(); )
@@ -129,7 +129,7 @@
                     // Can we have an other type for maven 1 project?
                     if ( "mail".equals( notif.getType() ) )
                     {
-                        currentNagEmailAddress = notif.getConfiguration().getProperty( ContinuumRecipientSource.ADDRESS_FIELD );
+                        currentNagEmailAddress = (String) notif.getConfiguration().get( ContinuumRecipientSource.ADDRESS_FIELD );
                     }
                 }
             }

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/ContinuumRecipientSource.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/ContinuumRecipientSource.java?rev=191364&r1=191363&r2=191364&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/ContinuumRecipientSource.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/ContinuumRecipientSource.java Sun Jun 19 14:08:39 2005
@@ -91,7 +91,7 @@
 
                 if ( notifier.getType().equals( notifierType ) && notifier.getConfiguration().containsKey( ADDRESS_FIELD ) )
                 {
-                    String addressField = notifier.getConfiguration().getProperty( ADDRESS_FIELD );
+                    String addressField = (String) notifier.getConfiguration().get( ADDRESS_FIELD );
 
                     String[] addresses = StringUtils.split( addressField, "," );
 

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java?rev=191364&r1=191363&r2=191364&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java Sun Jun 19 14:08:39 2005
@@ -19,7 +19,6 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
-import java.util.Properties;
 import java.util.Set;
 
 import org.apache.maven.continuum.project.ContinuumBuild;
@@ -43,13 +42,13 @@
     extends AbstractLogEnabled
     implements ContinuumNotificationDispatcher
 {
-    /** @requirement */
+    /** @plexus.requirement */
     private NotifierManager notifierManager;
 
-    /** @requirement */
+    /** @plexus.requirement */
     private ContinuumStore store;
 
-    /** @requirement */
+    /** @plexus.requirement */
     private RecipientSource recipientSource;
 
     // ----------------------------------------------------------------------
@@ -140,7 +139,7 @@
 
                 String notifierType = continuumNotifier.getType();
 
-                Properties configuration = continuumNotifier.getConfiguration();
+                Map configuration = continuumNotifier.getConfiguration();
 
                 Notifier notifier = notifierManager.getNotifier( notifierType );
 

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/ModelloJPoxContinuumStore.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/ModelloJPoxContinuumStore.java?rev=191364&r1=191363&r2=191364&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/ModelloJPoxContinuumStore.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/ModelloJPoxContinuumStore.java Sun Jun 19 14:08:39 2005
@@ -55,7 +55,7 @@
     extends AbstractContinuumStore
     implements ContinuumStore, Initializable
 {
-    /** @requirement */
+    /** @plexus.requirement */
     private JdoFactory jdoFactory;
 
     private ContinuumJPoxStore store;
@@ -175,43 +175,64 @@
     {
         try
         {
-            store.storeContinuumProject( project );
-        }
-        catch ( Exception e )
-        {
-            throw new ContinuumStoreException( "Error while setting the working directory.", e );
-        }
-    }
+            project.setCommandLineArguments( StringUtils.clean( project.getCommandLineArguments() ) );
 
-    public void updateProject( String projectId,
-                               String name,
-                               String scmUrl,
-                               List notifiers,
-                               String version,
-                               String commandLineArguments )
-        throws ContinuumStoreException
-    {
-        try
-        {
-            store.begin();
+            store.storeContinuumProject( project );
 
-            ContinuumProject project = store.getContinuumProject( projectId, false );
+//            pm.attachCopyAll( project.getDevelopers(), true );
+//
+//            Collection notifiers = project.getNotifiers();
 
-            project.setName( name );
-            project.setScmUrl( scmUrl );
-            project.setNotifiers( notifiers );
-            project.setVersion( version );
-            project.setCommandLineArguments( commandLineArguments );
+//            System.err.println( "updating " + notifiers.size() );
+//
+//            for ( Iterator it = notifiers.iterator(); it.hasNext(); )
+//            {
+//                ContinuumNotifier notifier = (ContinuumNotifier) it.next();
+//
+//                System.err.println( "type: " + notifier.getType() );
+//                System.err.println( "config:" + notifier.getConfiguration() );
+//                System.err.println( "id: " + JDOHelper.getObjectId( notifier ) );
+//
+//                pm.attachCopy( notifier, true );
+//            }
 
-            store.commit();
+//            pm.attachCopyAll( notifiers, true );
         }
         catch ( Exception e )
         {
-            rollback( store );
-
-            throw new ContinuumStoreException( "Error while updating project.", e );
+            throw new ContinuumStoreException( "Error while setting the working directory.", e );
         }
     }
+
+//    public void updateProject( String projectId,
+//                               String name,
+//                               String scmUrl,
+//                               List notifiers,
+//                               String version,
+//                               String commandLineArguments )
+//        throws ContinuumStoreException
+//    {
+//        try
+//        {
+//            store.begin();
+//
+//            ContinuumProject project = store.getContinuumProject( projectId, false );
+//
+//            project.setName( name );
+//            project.setScmUrl( scmUrl );
+//            project.setNotifiers( notifiers );
+//            project.setVersion( version );
+//            project.setCommandLineArguments( commandLineArguments );
+//
+//            store.commit();
+//        }
+//        catch ( Exception e )
+//        {
+//            rollback( store );
+//
+//            throw new ContinuumStoreException( "Error while updating project.", e );
+//        }
+//    }
 
     public Collection getAllProjects()
         throws ContinuumStoreException

Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/ContinuumJPoxStoreTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/ContinuumJPoxStoreTest.java?rev=191364&r1=191363&r2=191364&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/ContinuumJPoxStoreTest.java (original)
+++ maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/ContinuumJPoxStoreTest.java Sun Jun 19 14:08:39 2005
@@ -18,9 +18,11 @@
 
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.List;
 
-import javax.jdo.PersistenceManagerFactory;
 import javax.jdo.JDODetachedFieldAccessException;
+import javax.jdo.PersistenceManager;
+import javax.jdo.PersistenceManagerFactory;
 
 import org.apache.maven.continuum.scm.CheckOutScmResult;
 import org.apache.maven.continuum.scm.ScmFile;
@@ -66,6 +68,155 @@
         }
     }
 
+    public void testNotifiers()
+        throws Exception
+    {
+        // ----------------------------------------------------------------------
+        // Store a single notifier
+        // ----------------------------------------------------------------------
+
+        ContinuumNotifier n = new ContinuumNotifier();
+
+        n.setType( "foo" );
+
+        n.getConfiguration().put( "foo", "bar" );
+
+        Object oid = store.addContinuumNotifier( n );
+
+        n = store.getContinuumNotifierByJdoId( oid, true );
+
+        assertEquals( "foo", n.getType() );
+
+        assertNotNull( n.getConfiguration() );
+
+        assertEquals( 1, n.getConfiguration().size() );
+
+        assertEquals( "bar", n.getConfiguration().get( "foo" ) );
+
+        // ----------------------------------------------------------------------
+        // Update a single notifier
+        // ----------------------------------------------------------------------
+
+        n = store.getContinuumNotifierByJdoId( oid, true );
+
+        n.setType( "bar" );
+
+        n.getConfiguration().remove( "foo" );
+
+        n.getConfiguration().put( "bar", "foo" );
+
+        PersistenceManager pm = store.begin();
+
+        pm.attachCopy( n, true );
+
+        store.commit();
+
+        n = store.getContinuumNotifierByJdoId( oid, true );
+
+        assertNotifier( "bar", "bar", "foo", n );
+
+        assertEquals( 1, n.getConfiguration().size() );
+    }
+
+    public void testNotifiersInProject()
+        throws Exception
+    {
+        // ----------------------------------------------------------------------
+        // Make a project with two notifiers
+        // ----------------------------------------------------------------------
+
+        ContinuumProject p = makeProject( store );
+
+        ContinuumNotifier n;
+
+        n = makeNotifier( "foo", "foo", "bar" );
+
+        p.getNotifiers().add( n );
+
+        n = makeNotifier( "bar", "bar", "foo" );
+
+        p.getNotifiers().add( n );
+
+        store.storeContinuumProject( p );
+
+        // ----------------------------------------------------------------------
+        // Assert
+        // ----------------------------------------------------------------------
+
+        p = store.getContinuumProject( p.getId(), true );
+
+        List notifiers = p.getNotifiers();
+
+        assertEquals( 2, notifiers.size() );
+
+        assertNotifier( "foo", "foo", "bar", (ContinuumNotifier)notifiers.get( 0 ) );
+
+        assertNotifier( "bar", "bar", "foo", (ContinuumNotifier) notifiers.get( 1 ) );
+
+        // ----------------------------------------------------------------------
+        // Modify the first notifier
+        // ----------------------------------------------------------------------
+
+        System.err.println( "***" );
+        System.err.println( "***" );
+        System.err.println( "***" );
+
+        System.err.println( "store.getContinuumProject( p.getId(), true );" );
+        p = store.getContinuumProject( p.getId(), true );
+
+        System.err.println( "p.getNotifiers();" );
+        notifiers = p.getNotifiers();
+
+        System.err.println( "notifiers.get( 0 );" );
+        n = (ContinuumNotifier) notifiers.get( 0 );
+
+        System.err.println( "n.setType( \"baz\" );" );
+        n.setType( "baz" );
+
+        // change a existsing property
+        System.err.println( "n.getConfiguration().put( \"foo\", \"foo\" );" );
+        n.getConfiguration().put( "foo", "foo" );
+
+        // add another property
+        System.err.println( "n.getConfiguration().put( \"baz\", \"yay\" );" );
+        n.getConfiguration().put( "baz", "yay" );
+
+        System.err.println( "store.storeContinuumProject( p );" );
+        store.storeContinuumProject( p );
+        
+        System.err.println( "***" );
+        System.err.println( "***" );
+        System.err.println( "***" );
+
+        // ----------------------------------------------------------------------
+        //
+        // ----------------------------------------------------------------------
+
+        p = store.getContinuumProject( p.getId(), true );
+
+        notifiers = p.getNotifiers();
+
+        assertEquals( 2, notifiers.size() );
+
+        n = (ContinuumNotifier) notifiers.get( 0 );
+
+        assertEquals( "baz", n.getType() );
+
+        assertNotNull( n.getConfiguration() );
+
+        assertEquals( "foo", n.getConfiguration().get( "foo" ) );
+
+        assertEquals( "yay", n.getConfiguration().get( "baz" ) );
+
+        n = (ContinuumNotifier) notifiers.get( 1 );
+
+        assertEquals( "bar", n.getType() );
+
+        assertNotNull( n.getConfiguration() );
+
+        assertEquals( "foo", n.getConfiguration().get( "bar" ) );
+    }
+
     public void testCascadingDelete()
         throws Exception
     {
@@ -184,6 +335,28 @@
     //
     // ----------------------------------------------------------------------
 
+    private void assertNotifier( String type, String key, String value, ContinuumNotifier notifier )
+    {
+        assertEquals( type, notifier.getType() );
+
+        assertNotNull( notifier.getConfiguration() );
+
+        assertEquals( 1, notifier.getConfiguration().size() );
+
+        assertEquals( value, notifier.getConfiguration().get( key ) );
+    }
+
+    private ContinuumNotifier makeNotifier( String type, String key, String value )
+    {
+        ContinuumNotifier notifier = new ContinuumNotifier();
+
+        notifier.setType( type );
+
+        notifier.getConfiguration().put( key, value );
+
+        return notifier;
+    }
+
     private ContinuumProject makeProject( ContinuumJPoxStore store )
         throws Exception
     {
@@ -247,6 +420,6 @@
         //
         // ----------------------------------------------------------------------
 
-        return p;
+        return store.getContinuumProjectByJdoId( oid, true );
     }
 }

Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/ModelloJPoxContinuumStoreTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/ModelloJPoxContinuumStoreTest.java?rev=191364&r1=191363&r2=191364&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/ModelloJPoxContinuumStoreTest.java (original)
+++ maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/ModelloJPoxContinuumStoreTest.java Sun Jun 19 14:08:39 2005
@@ -169,14 +169,6 @@
 
         configuration.setProperty( "foo", "bar" );
 
-        ContinuumProject expected = makeMavenTwoProject( "Test Project",
-                                                         "scm:local:src/test/repo",
-                                                         "foo@bar.com",
-                                                         "1.0",
-                                                         "a b",
-                                                         "maven2",
-                                                         "/tmp" );
-
         String projectId = store.addProject( makeMavenTwoProject( "Test Project",
                                                                   "scm:local:src/test/repo",
                                                                   "foo@bar.com",
@@ -189,7 +181,13 @@
 
         ContinuumProject actual = store.getProject( projectId );
 
-        assertProjectEquals( projectId, expected, actual );
+        assertProjectEquals( projectId, makeMavenTwoProject( "Test Project",
+                                                             "scm:local:src/test/repo",
+                                                             "foo@bar.com",
+                                                             "1.0",
+                                                             "a b",
+                                                             "maven2",
+                                                             "/tmp" ), actual );
     }
 
 
@@ -223,19 +221,21 @@
         String builderId = "maven2";
         String workingDirectory = "/tmp";
 
-        String projectId = store.addProject( makeMavenTwoProject( name,
-                                                                  scmUrl,
-                                                                  nagEmailAddress,
-                                                                  version,
-                                                                  commandLineArguments,
-                                                                  builderId,
-                                                                  workingDirectory ) );
+        ContinuumProject project = makeMavenTwoProject( name,
+                                                        scmUrl,
+                                                        nagEmailAddress,
+                                                        version,
+                                                        commandLineArguments,
+                                                        builderId,
+                                                        workingDirectory );
+
+        String projectId = store.addProject( project );
 
         // ----------------------------------------------------------------------
         //
         // ----------------------------------------------------------------------
 
-        ContinuumProject project = store.getProject( projectId );
+        project = store.getProject( projectId );
 
         assertNotNull( project );
 
@@ -261,25 +261,44 @@
         //
         // ----------------------------------------------------------------------
 
+        project = store.getProject( projectId );
+        System.err.println( ( (ContinuumNotifier) project.getNotifiers().get( 0 ) ).getConfiguration() );
+
         String name2 = "name 2";
         String scmUrl2 = "scm url 2";
         String emailAddress2 = "2@bar";
         String version2 = "v2";
         String commandLineArguments2 = "";
 
-        store.updateProject( projectId,
-                             name2,
-                             scmUrl2,
-                             createNotifiers( emailAddress2 ),
-                             version2,
-                             commandLineArguments2 );
+        project.setName( name2 );
+        project.setScmUrl( scmUrl2 );
+
+        ContinuumNotifier notifier = ((ContinuumNotifier) project.getNotifiers().get( 0 ));
+        notifier.setType( "kewk" );
+        notifier.getConfiguration().put( "address", emailAddress2 );
+        notifier.getConfiguration().put( "name", "tryg" );
+        project.setVersion( version2 );
+        project.setCommandLineArguments( commandLineArguments2 );
+
+        System.err.println( ( (ContinuumNotifier) project.getNotifiers().get( 0 ) ).getConfiguration() );
+        store.updateProject( project );
+        System.err.println( ( (ContinuumNotifier) project.getNotifiers().get( 0 ) ).getConfiguration() );
 
         project = store.getProject( projectId );
 
+        System.err.println( ((ContinuumNotifier)project.getNotifiers().get(0)).getConfiguration() );
+
+        notifier = new ContinuumNotifier();
+        notifier.setType( "kewk" );
+        notifier.getConfiguration().put( "address", emailAddress2 );
+        notifier.getConfiguration().put( "name", "tryg" );
+        List notifiers = new ArrayList();
+        notifiers.add( notifier );
+
         assertProjectEquals( projectId,
                              name2,
                              scmUrl2,
-                             createNotifiers( emailAddress2 ),
+                             notifiers,
                              version2,
                              commandLineArguments2,
                              builderId,
@@ -798,6 +817,8 @@
     {
         ContinuumNotifier notifier = new ContinuumNotifier();
 
+        notifier.setType( "mail" );
+
         Properties props = new Properties();
 
         props.put( "address", emailAddress );
@@ -811,7 +832,8 @@
         return notifiers;
     }
 
-    public static String addMavenTwoProject( ContinuumStore store, ContinuumProject project )
+    public static String addMavenTwoProject( ContinuumStore store,
+                                             ContinuumProject project )
         throws Exception
     {
         String projectId = store.addProject( project );
@@ -841,20 +863,22 @@
         return projectId;
     }
 
-    public static String addMavenTwoProject( ContinuumStore store, String name, String scmUrl )
+    public static String addMavenTwoProject( ContinuumStore store,
+                                             String name,
+                                             String scmUrl )
         throws Exception
     {
         return addMavenTwoProject( store, makeStubMavenTwoProject( name, scmUrl ) );
     }
 
     public static String addMavenTwoProject( ContinuumStore store,
-                                     String name,
-                                     String scmUrl,
-                                     String nagEmailAddress,
-                                     String version,
-                                     String commandLineArguments,
-                                     String executorId,
-                                     String workingDirectory  )
+                                             String name,
+                                             String scmUrl,
+                                             String nagEmailAddress,
+                                             String version,
+                                             String commandLineArguments,
+                                             String executorId,
+                                             String workingDirectory )
         throws Exception
     {
         String projectId = store.addProject( makeMavenTwoProject( name,
@@ -924,9 +948,17 @@
                                       String workingDirectory,
                                       ContinuumProject actual )
     {
-        assertProjectEquals( projectId, name, scmUrl, createNotifiers( emailAddress), version, commandLineArguments,
-                             builderId, workingDirectory, actual );
+        assertProjectEquals( projectId,
+                             name,
+                             scmUrl,
+                             createNotifiers( emailAddress),
+                             version,
+                             commandLineArguments,
+                             builderId,
+                             workingDirectory,
+                             actual );
     }
+
     private void assertProjectEquals( String projectId,
                                       String name,
                                       String scmUrl,
@@ -943,9 +975,9 @@
 
         assertEquals( "project.scmUrl", scmUrl, actual.getScmUrl() );
 
-        assertNotNull( notifiers );
+        assertNotNull( "project.notifiers", actual.getNotifiers() );
 
-        assertEquals( "project.notifiers", notifiers.size(), actual.getNotifiers().size() );
+        assertEquals( "project.notifiers.size", notifiers.size(), actual.getNotifiers().size() );
 
         for ( int i = 0; i < notifiers.size(); i++ )
         {

Modified: maven/continuum/trunk/continuum-model/src/main/resources/continuum.mdo
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-model/src/main/resources/continuum.mdo?rev=191364&r1=191363&r2=191364&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-model/src/main/resources/continuum.mdo (original)
+++ maven/continuum/trunk/continuum-model/src/main/resources/continuum.mdo Sun Jun 19 14:08:39 2005
@@ -154,8 +154,8 @@
           <name>configuration</name>
           <version>1.0.0</version>
           <description>Extended configuration specific to this notifier goes here.</description>
-          <type>Properties</type>
-          <association xml.mapStyle="inline" stash.part="true">
+          <type>Map</type>
+          <association xml.mapStyle="inline" stash.part="true" stash.keyType="java.lang.String">
             <type>String</type>
             <multiplicity>*</multiplicity>
           </association>

Modified: maven/continuum/trunk/pom.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/pom.xml?rev=191364&r1=191363&r2=191364&view=diff
==============================================================================
--- maven/continuum/trunk/pom.xml (original)
+++ maven/continuum/trunk/pom.xml Sun Jun 19 14:08:39 2005
@@ -111,7 +111,10 @@
       <dependency>
         <groupId>jpox</groupId>
         <artifactId>jpox</artifactId>
+        <!--
         <version>1.1.0-beta-3</version>
+        -->
+        <version>1.1.0-beta-4-SNAPSHOT</version>
       </dependency>
       <dependency>
         <groupId>jpox</groupId>