You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2008/07/26 06:21:41 UTC

svn commit: r679950 - in /maven/components/branches/MNG-2477/maven-core/src: main/java/org/apache/maven/settings/SettingsUtils.java test/java/org/apache/maven/settings/SettingsUtilsTest.java

Author: brett
Date: Fri Jul 25 21:21:39 2008
New Revision: 679950

URL: http://svn.apache.org/viewvc?rev=679950&view=rev
Log:
merge settings

Modified:
    maven/components/branches/MNG-2477/maven-core/src/main/java/org/apache/maven/settings/SettingsUtils.java
    maven/components/branches/MNG-2477/maven-core/src/test/java/org/apache/maven/settings/SettingsUtilsTest.java

Modified: maven/components/branches/MNG-2477/maven-core/src/main/java/org/apache/maven/settings/SettingsUtils.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2477/maven-core/src/main/java/org/apache/maven/settings/SettingsUtils.java?rev=679950&r1=679949&r2=679950&view=diff
==============================================================================
--- maven/components/branches/MNG-2477/maven-core/src/main/java/org/apache/maven/settings/SettingsUtils.java (original)
+++ maven/components/branches/MNG-2477/maven-core/src/main/java/org/apache/maven/settings/SettingsUtils.java Fri Jul 25 21:21:39 2008
@@ -110,6 +110,34 @@
         shallowMergeById( dominant.getProxies(), recessive.getProxies(), recessiveSourceLevel );
         shallowMergeById( dominant.getProfiles(), recessive.getProfiles(), recessiveSourceLevel );
 
+        if (recessive.getSecurity() != null )
+        {
+            if ( dominant.getSecurity() == null ) 
+            {
+                dominant.setSecurity( new Security() );
+            }
+            
+            List<String> dominantPublicKeyRings = dominant.getSecurity().getPublicKeyRings();
+
+            List<String> recessivePublicKeyRings = recessive.getSecurity().getPublicKeyRings();
+
+            if ( recessivePublicKeyRings != null )
+            {
+                if ( dominantPublicKeyRings == null )
+                {
+                    dominantPublicKeyRings = new ArrayList<String>();
+                    dominant.getSecurity().setPublicKeyRings( dominantPublicKeyRings );
+                }
+
+                for ( String publicKeyRing : recessivePublicKeyRings )
+                {
+                    if ( !dominantPublicKeyRings.contains( publicKeyRing ) )
+                    {
+                        dominantPublicKeyRings.add( publicKeyRing );
+                    }
+                }
+            }
+        }
     }
 
     /**

Modified: maven/components/branches/MNG-2477/maven-core/src/test/java/org/apache/maven/settings/SettingsUtilsTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2477/maven-core/src/test/java/org/apache/maven/settings/SettingsUtilsTest.java?rev=679950&r1=679949&r2=679950&view=diff
==============================================================================
--- maven/components/branches/MNG-2477/maven-core/src/test/java/org/apache/maven/settings/SettingsUtilsTest.java (original)
+++ maven/components/branches/MNG-2477/maven-core/src/test/java/org/apache/maven/settings/SettingsUtilsTest.java Fri Jul 25 21:21:39 2008
@@ -21,12 +21,14 @@
 
 import junit.framework.TestCase;
 
+import java.util.Arrays;
 import java.util.List;
 
 public class SettingsUtilsTest
     extends TestCase
 {
 
+    @SuppressWarnings("unchecked")
     public void testShouldAppendRecessivePluginGroupIds()
     {
         Settings dominant = new Settings();
@@ -46,5 +48,63 @@
         assertEquals( "org.codehaus.modello", pluginGroups.get( 1 ) );
         assertEquals( "org.codehaus.plexus", pluginGroups.get( 2 ) );
     }
-
+    
+    public void testMergeKeyrings()
+    {
+        Settings dominant = new Settings();
+        Security security = new Security();
+        dominant.setSecurity( security );
+        security.addPublicKeyRing( "key-ring-user" );
+        
+        Settings recessive = new Settings();
+        security = new Security();
+        recessive.setSecurity( security );
+        security.addPublicKeyRing( "key-ring-global" );
+        
+        SettingsUtils.merge( dominant, recessive, Settings.GLOBAL_LEVEL );
+        
+        assertNotNull( dominant.getSecurity() );
+        assertEquals( Arrays.asList( "key-ring-user", "key-ring-global" ), dominant.getSecurity().getPublicKeyRings() );
+    }
+    
+    public void testMergeKeyringsUserEmpty()
+    {
+        Settings dominant = new Settings();
+        
+        Settings recessive = new Settings();
+        Security security = new Security();
+        recessive.setSecurity( security );
+        security.addPublicKeyRing( "key-ring-global" );
+        
+        SettingsUtils.merge( dominant, recessive, Settings.GLOBAL_LEVEL );
+        
+        assertNotNull( dominant.getSecurity() );
+        assertEquals( Arrays.asList( "key-ring-global" ), dominant.getSecurity().getPublicKeyRings() );
+    }
+    
+    public void testMergeKeyringsGlobalEmpty()
+    {
+        Settings dominant = new Settings();
+        Security security = new Security();
+        dominant.setSecurity( security );
+        security.addPublicKeyRing( "key-ring-user" );
+        
+        Settings recessive = new Settings();
+        
+        SettingsUtils.merge( dominant, recessive, Settings.GLOBAL_LEVEL );
+        
+        assertNotNull( dominant.getSecurity() );
+        assertEquals( Arrays.asList( "key-ring-user" ), dominant.getSecurity().getPublicKeyRings() );
+    }
+    
+    public void testMergeKeyringsBothEmpty()
+    {
+        Settings dominant = new Settings();
+        
+        Settings recessive = new Settings();
+        
+        SettingsUtils.merge( dominant, recessive, Settings.GLOBAL_LEVEL );
+        
+        assertNull( dominant.getSecurity() );
+    }
 }