Author: brett
Date: Sat Nov 28 14:51:55 2009
New Revision: 885100

URL: http://svn.apache.org/viewvc?rev=885100&view=rev
Log:
[MRM-1283] a further slight improvement to performance of on-demand resolution 
from storage

Modified:
    
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/DefaultMetadataResolver.java

Modified: 
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/DefaultMetadataResolver.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/DefaultMetadataResolver.java?rev=885100&r1=885099&r2=885100&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/DefaultMetadataResolver.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/DefaultMetadataResolver.java
 Sat Nov 28 14:51:55 2009
@@ -125,8 +125,10 @@
     public Collection<String> getNamespaces( String repoId, String namespace )
     {
         Collection<String> namespaces = metadataRepository.getNamespaces( 
repoId, namespace );
+        Collection<String> exclusions = new ArrayList<String>( namespaces );
+        exclusions.addAll( metadataRepository.getProjects( repoId, namespace ) 
);
         Collection<String> storageNamespaces =
-            storageResolver.getNamespaces( repoId, namespace, new 
ExcludesFilter<String>( namespaces ) );
+            storageResolver.getNamespaces( repoId, namespace, new 
ExcludesFilter<String>( exclusions ) );
         if ( storageNamespaces != null && !storageNamespaces.isEmpty() )
         {
             for ( String n : storageNamespaces )
@@ -142,8 +144,10 @@
     public Collection<String> getProjects( String repoId, String namespace )
     {
         Collection<String> projects = metadataRepository.getProjects( repoId, 
namespace );
+        Collection<String> exclusions = new ArrayList<String>( projects );
+        exclusions.addAll( metadataRepository.getNamespaces( repoId, namespace 
) );
         Collection<String> storageProjects =
-            storageResolver.getProjects( repoId, namespace, new 
ExcludesFilter<String>( projects ) );
+            storageResolver.getProjects( repoId, namespace, new 
ExcludesFilter<String>( exclusions ) );
         if ( storageProjects != null && !storageProjects.isEmpty() )
         {
             for ( String projectId : storageProjects )


Reply via email to