fix some problems in invoking search service

git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@732674 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Maria Odea B. Ching 2009-01-08 10:14:02 +00:00
parent 9158c2f5dc
commit d2190ff6a8
4 changed files with 56 additions and 23 deletions

View File

@ -27,7 +27,7 @@ import org.apache.archiva.web.xmlrpc.api.beans.Dependency;
import com.atlassian.xmlrpc.ServiceObject;
@ServiceObject("Search")
@ServiceObject("SearchService")
public interface SearchService
{
/*

View File

@ -20,7 +20,6 @@ package org.apache.archiva.web.xmlrpc.api.beans;
*/
import java.io.Serializable;
import java.util.Date;
import com.atlassian.xmlrpc.ServiceBean;
import com.atlassian.xmlrpc.ServiceBeanField;
@ -39,22 +38,22 @@ public class Artifact
private String type;
private Date whenGathered;
//private Date whenGathered;
public Artifact()
{
}
public Artifact( String repositoryId, String groupId, String artifactId, String version,
String type, Date whenGathered )
public Artifact( String repositoryId, String groupId, String artifactId, String version, String type )
// String type, Date whenGathered )
{
this.repositoryId = repositoryId;
this.groupId = groupId;
this.artifactId = artifactId;
this.version = version;
this.type = type;
this.whenGathered = whenGathered;
//this.whenGathered = whenGathered;
}
public String getGroupId()
@ -77,10 +76,10 @@ public class Artifact
return type;
}
public Date getWhenGathered()
/*public Date getWhenGathered()
{
return whenGathered;
}
}*/
@ServiceBeanField( "groupId" )
public void setGroupId( String groupId )
@ -106,11 +105,11 @@ public class Artifact
this.type = type;
}
@ServiceBeanField( "whenGathered" )
/*@ServiceBeanField( "whenGathered" )
public void setWhenGathered( Date whenGathered )
{
this.whenGathered = whenGathered;
}
}*/
public String getRepositoryId()
{

View File

@ -23,6 +23,8 @@ import java.net.URL;
import java.util.List;
import org.apache.archiva.web.xmlrpc.api.AdministrationService;
import org.apache.archiva.web.xmlrpc.api.SearchService;
import org.apache.archiva.web.xmlrpc.api.beans.Artifact;
import org.apache.archiva.web.xmlrpc.api.beans.ManagedRepository;
import org.apache.archiva.web.xmlrpc.api.beans.RemoteRepository;
@ -117,6 +119,23 @@ public class SampleClient
System.out.println( "\nDeleted artifact 'javax.activation:activation:1.1' from repository 'internal' : " +
( (Boolean) success ).booleanValue() );
*/
/* quick search */
/*
* NOTE: before enabling & invoking search service, make sure that the artifacts you're searching
* for has been indexed already in order to get results
*
SearchService searchService = binder.bind( SearchService.class, new URL( args[0] ), authnInfo );
List<Artifact> artifacts = searchService.quickSearch( "org" );
System.out.println( "\n************ Search Results for 'org' *************" );
for( Artifact artifact : artifacts )
{
System.out.println( "Artifact: " + artifact.getGroupId() + ":" + artifact.getArtifactId() +
":" + artifact.getVersion() );
}
*/
}
catch ( BindingException e )
{

View File

@ -29,6 +29,7 @@ import org.apache.archiva.web.xmlrpc.api.beans.Artifact;
import org.apache.archiva.web.xmlrpc.api.beans.Dependency;
import org.apache.archiva.web.xmlrpc.security.XmlRpcUserRepositories;
import org.apache.maven.archiva.database.ArchivaDAO;
import org.apache.maven.archiva.database.ArchivaDatabaseException;
import org.apache.maven.archiva.database.ArtifactDAO;
import org.apache.maven.archiva.database.ObjectNotFoundException;
import org.apache.maven.archiva.database.browsing.BrowsingResults;
@ -102,16 +103,28 @@ public class SearchServiceImpl
for( SearchResultHit hit : hits )
{
ArtifactDAO artifactDAO = archivaDAO.getArtifactDAO();
ArchivaArtifact pomArtifact = artifactDAO.getArtifact(
hit.getGroupId(), hit.getArtifactId(), hit.getVersion(), "", "pom" );
if( pomArtifact != null )
try
{
Artifact artifact = new Artifact( pomArtifact.getModel().getRepositoryId(), pomArtifact.getGroupId(), pomArtifact.getArtifactId(), pomArtifact.getVersion(),
pomArtifact.getType(), pomArtifact.getModel().getWhenGathered() );
artifacts.add( artifact );
ArchivaArtifact pomArtifact = artifactDAO.getArtifact(
hit.getGroupId(), hit.getArtifactId(), hit.getVersion(), "", "pom" );
if( pomArtifact != null )
{
Artifact artifact = new Artifact( pomArtifact.getModel().getRepositoryId(), pomArtifact.getGroupId(), pomArtifact.getArtifactId(), pomArtifact.getVersion(),
pomArtifact.getType() );
//pomArtifact.getType(), pomArtifact.getModel().getWhenGathered() );
artifacts.add( artifact );
}
else
{
continue;
}
}
else
catch ( ObjectNotFoundException e )
{
continue;
}
catch ( ArchivaDatabaseException e )
{
continue;
}
@ -137,8 +150,8 @@ public class SearchServiceImpl
for( ArchivaArtifact archivaArtifact : artifacts )
{
Artifact artifact = new Artifact( archivaArtifact.getModel().getRepositoryId(), archivaArtifact.getModel().getGroupId(),
archivaArtifact.getModel().getArtifactId(), archivaArtifact.getModel().getVersion(), archivaArtifact.getType(),
archivaArtifact.getModel().getWhenGathered() );
archivaArtifact.getModel().getArtifactId(), archivaArtifact.getModel().getVersion(), archivaArtifact.getType() );
//archivaArtifact.getModel().getWhenGathered() );
results.add( artifact );
}
@ -157,8 +170,8 @@ public class SearchServiceImpl
for( String version : results.getVersions() )
{
ArchivaArtifact pomArtifact = artifactDAO.getArtifact( groupId, artifactId, version, "", "pom" );
Artifact artifact = new Artifact( "", groupId, artifactId, version, pomArtifact.getType(),
pomArtifact.getModel().getWhenGathered() );
Artifact artifact = new Artifact( "", groupId, artifactId, version, pomArtifact.getType() );
//pomArtifact.getModel().getWhenGathered() );
artifacts.add( artifact );
}
@ -222,7 +235,9 @@ public class SearchServiceImpl
List<ArchivaProjectModel> dependees = repoBrowsing.getUsedBy( "", observableRepos, "org.apache.archiva", "archiva-test", "1.0" );
for( ArchivaProjectModel model : dependees )
{
Artifact artifact = new Artifact( "", model.getGroupId(), model.getArtifactId(), model.getVersion(), "", model.getWhenIndexed() );
Artifact artifact =
new Artifact( "", model.getGroupId(), model.getArtifactId(), model.getVersion(), "" );
//model.getWhenIndexed() );
artifacts.add( artifact );
}