]> source.dussan.org Git - archiva.git/commitdiff
[MRM-1501] search on artifacts with OSGI Metadatas fields
authorOlivier Lamy <olamy@apache.org>
Mon, 15 Aug 2011 21:28:13 +0000 (21:28 +0000)
committerOlivier Lamy <olamy@apache.org>
Mon, 15 Aug 2011 21:28:13 +0000 (21:28 +0000)
modify SearchResultSearchResultHitSearchResultHit to return osgi metadata

git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1158023 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java
archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/SearchResultHit.java
archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/archiva/indexer/search/NexusRepositorySearchOSGITest.java

index 01b3e9a1ea6a3ac26d4619a99446d3e2cfeaf0ae..a189384dd6d9b7b1a4e87d706f7adf0474e65621 100644 (file)
@@ -322,6 +322,10 @@ public class NexusRepositorySearch
                 //hit.setRepositoryId( artifactInfo.repository );
                 hit.setUrl( artifactInfo.repository + "/" + artifactInfo.fname );
                 hit.addVersion( artifactInfo.version );
+                hit.setBundleExportPackage( artifactInfo.bundleExportPackage );
+                hit.setBundleExportService( artifactInfo.bundleExportService );
+                hit.setBundleSymbolicName( artifactInfo.bundleSymbolicName );
+                hit.setBundleVersion( artifactInfo.bundleVersion );
             }
 
             results.addHit( id, hit );
index 253a43c941be39c4e1926be53f4cf60f17e6ab20..8ffd79f95deebc58466e032ed5c3cf8b9764facb 100644 (file)
@@ -48,6 +48,35 @@ public class SearchResultHit
 
     private List<String> versions = new ArrayList<String>();
 
+
+    /**
+     * contains osgi metadata Bundle-Version if available
+     *
+     * @since 1.4
+     */
+    private String bundleVersion;
+
+    /**
+     * contains osgi metadata Bundle-SymbolicName if available
+     *
+     * @since 1.4
+     */
+    private String bundleSymbolicName;
+
+    /**
+     * contains osgi metadata Export-Package if available
+     *
+     * @since 1.4
+     */
+    private String bundleExportPackage;
+
+    /**
+     * contains osgi metadata Export-Service if available
+     *
+     * @since 1.4
+     */
+    private String bundleExportService;
+
     public String getContext()
     {
         return context;
@@ -128,6 +157,46 @@ public class SearchResultHit
         versions.add( version );
     }
 
+    public String getBundleVersion()
+    {
+        return bundleVersion;
+    }
+
+    public void setBundleVersion( String bundleVersion )
+    {
+        this.bundleVersion = bundleVersion;
+    }
+
+    public String getBundleSymbolicName()
+    {
+        return bundleSymbolicName;
+    }
+
+    public void setBundleSymbolicName( String bundleSymbolicName )
+    {
+        this.bundleSymbolicName = bundleSymbolicName;
+    }
+
+    public String getBundleExportPackage()
+    {
+        return bundleExportPackage;
+    }
+
+    public void setBundleExportPackage( String bundleExportPackage )
+    {
+        this.bundleExportPackage = bundleExportPackage;
+    }
+
+    public String getBundleExportService()
+    {
+        return bundleExportService;
+    }
+
+    public void setBundleExportService( String bundleExportService )
+    {
+        this.bundleExportService = bundleExportService;
+    }
+
     @Override
     public String toString()
     {
index dfc530625f030b78f45beac925da8fb4efe67dba..f3863824944d23f839fb15c8bcb78f9bad1af043 100644 (file)
@@ -19,7 +19,6 @@ package org.apache.archiva.indexer.search;
  * under the License.
  */
 
-import junit.framework.TestCase;
 import org.junit.Test;
 
 import java.io.File;
@@ -48,7 +47,7 @@ public class NexusRepositorySearchOSGITest
 
         archivaConfigControl.replay();
 
-        SearchFields searchFields = new SearchFields(  );
+        SearchFields searchFields = new SearchFields();
         searchFields.setBundleSymbolicName( "org.apache.felix.bundlerepository" );
         searchFields.setBundleVersion( "1.6.6" );
         searchFields.setRepositories( selectedRepos );
@@ -65,6 +64,12 @@ public class NexusRepositorySearchOSGITest
         assertEquals( "org.apache.felix.bundlerepository", hit.getArtifactId() );
         assertEquals( "1.6.6", hit.getVersions().get( 0 ) );
 
+        assertEquals( "org.apache.felix.bundlerepository;uses:=\"org.osgi.framework\";version=\"2.0\"",
+                      hit.getBundleExportPackage() );
+        assertEquals( "org.apache.felix.bundlerepository.RepositoryAdmin,org.osgi.service.obr.RepositoryAdmin",
+                      hit.getBundleExportService() );
+        assertEquals( "org.apache.felix.bundlerepository", hit.getBundleSymbolicName() );
+        assertEquals( "1.6.6", hit.getBundleVersion() );
     }
 
 }