You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2009/07/23 00:07:55 UTC
svn commit: r796892 - in
/maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/container:
./ ContainerUtils.java
Author: jdcasey
Date: Wed Jul 22 22:07:55 2009
New Revision: 796892
URL: http://svn.apache.org/viewvc?rev=796892&view=rev
Log:
missed a file.
Added:
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/container/
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/container/ContainerUtils.java
Added: maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/container/ContainerUtils.java
URL: http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/container/ContainerUtils.java?rev=796892&view=auto
==============================================================================
--- maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/container/ContainerUtils.java (added)
+++ maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/container/ContainerUtils.java Wed Jul 22 22:07:55 2009
@@ -0,0 +1,53 @@
+package org.apache.maven.container;
+
+import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.component.repository.ComponentDescriptor;
+
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Set;
+
+public class ContainerUtils
+{
+
+ public static Set<String> findChildComponentHints( String role, PlexusContainer parent, PlexusContainer child )
+ {
+ return findChildComponents( role, parent, child ).keySet();
+ }
+
+ @SuppressWarnings( "unchecked" )
+ public static Map<String, ComponentDescriptor> findChildComponents( String role, PlexusContainer parent, PlexusContainer child )
+ {
+ Map<String, ComponentDescriptor> parentComponents = parent.getComponentDescriptorMap( role );
+ if ( parentComponents != null )
+ {
+ parentComponents = new LinkedHashMap<String, ComponentDescriptor>( parentComponents );
+ }
+
+ Map<String, ComponentDescriptor> childComponents = child.getComponentDescriptorMap( role );
+ if ( childComponents == null )
+ {
+ return new HashMap<String, ComponentDescriptor>();
+ }
+ else
+ {
+ childComponents = new LinkedHashMap<String, ComponentDescriptor>( childComponents );
+ if ( parentComponents != null && !parentComponents.isEmpty() )
+ {
+ for ( Map.Entry<String, ComponentDescriptor> entry : parentComponents.entrySet() )
+ {
+ String hint = entry.getKey();
+
+ if ( childComponents.containsKey( hint ) && entry.getValue() == childComponents.get( hint ) )
+ {
+ childComponents.remove( hint );
+ }
+ }
+ }
+ }
+
+ return childComponents;
+ }
+
+}