fix display of search results with pagination

git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1179993 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Olivier Lamy 2011-10-07 10:41:01 +00:00
parent 47229dec13
commit 649e73136c
4 changed files with 179 additions and 158 deletions

View File

@ -462,6 +462,7 @@ public class NexusRepositorySearch
} }
results.setTotalHits(response.getTotalHitsCount()); results.setTotalHits(response.getTotalHitsCount());
results.setTotalHitsMapSize(results.getHitsMap().values().size());
results.setReturnedHitsCount(response.getReturnedHitsCount()); results.setReturnedHitsCount(response.getReturnedHitsCount());
results.setLimits(limits); results.setLimits(limits);
@ -631,6 +632,7 @@ public class NexusRepositorySearch
} }
paginated.setTotalHits(results.getTotalHits()); paginated.setTotalHits(results.getTotalHits());
paginated.setReturnedHitsCount(paginated.getHits().size()); paginated.setReturnedHitsCount(paginated.getHits().size());
paginated.setTotalHitsMapSize( results.getTotalHitsMapSize() );
paginated.setLimits(limits); paginated.setLimits(limits);
return paginated; return paginated;

View File

@ -35,6 +35,8 @@ public class SearchResults
private Map<String, SearchResultHit> hits = new HashMap<String, SearchResultHit>(); private Map<String, SearchResultHit> hits = new HashMap<String, SearchResultHit>();
private int totalHits; private int totalHits;
private int totalHitsMapSize;
private int returnedHitsCount; private int returnedHitsCount;
@ -120,6 +122,24 @@ public class SearchResults
this.returnedHitsCount = returnedHitsCount; this.returnedHitsCount = returnedHitsCount;
} }
/**
* @since 1.4-M1
* @return
*/
public int getTotalHitsMapSize()
{
return totalHitsMapSize;
}
/**
* @since 1.4-M1
* @param totalHitsMapSize
*/
public void setTotalHitsMapSize(int totalHitsMapSize)
{
this.totalHitsMapSize = totalHitsMapSize;
}
@Override @Override
public String toString() public String toString()
{ {

View File

@ -86,7 +86,7 @@ public class SearchAction
private static final String COMPLETE_QUERY_STRING_SEPARATOR = ";"; private static final String COMPLETE_QUERY_STRING_SEPARATOR = ";";
private List<String> managedRepositoryList = new ArrayList<String>( ); private List<String> managedRepositoryList = new ArrayList<String>();
private String groupId; private String groupId;
@ -155,53 +155,53 @@ public class SearchAction
private String infoMessage; private String infoMessage;
public boolean isFromResultsPage( ) public boolean isFromResultsPage()
{ {
return fromResultsPage; return fromResultsPage;
} }
public void setFromResultsPage( boolean fromResultsPage ) public void setFromResultsPage(boolean fromResultsPage)
{ {
this.fromResultsPage = fromResultsPage; this.fromResultsPage = fromResultsPage;
} }
public boolean isFromFilterSearch( ) public boolean isFromFilterSearch()
{ {
return fromFilterSearch; return fromFilterSearch;
} }
public void setFromFilterSearch( boolean fromFilterSearch ) public void setFromFilterSearch(boolean fromFilterSearch)
{ {
this.fromFilterSearch = fromFilterSearch; this.fromFilterSearch = fromFilterSearch;
} }
public void prepare( ) public void prepare()
{ {
managedRepositoryList = getObservableRepos( ); managedRepositoryList = getObservableRepos();
if ( managedRepositoryList.size( ) > 0 ) if ( managedRepositoryList.size() > 0 )
{ {
managedRepositoryList.add( "all" ); managedRepositoryList.add("all");
} }
searchFields = new LinkedHashMap<String, String>( ); searchFields = new LinkedHashMap<String, String>();
searchFields.put( "groupId", "Group ID" ); searchFields.put("groupId", "Group ID");
searchFields.put( "artifactId", "Artifact ID" ); searchFields.put("artifactId", "Artifact ID");
searchFields.put( "version", "Version" ); searchFields.put("version", "Version");
searchFields.put( "className", "Class/Package Name" ); searchFields.put("className", "Class/Package Name");
searchFields.put( "rowCount", "Row Count" ); searchFields.put("rowCount", "Row Count");
searchFields.put( "bundleVersion", "OSGI Bundle Version" ); searchFields.put("bundleVersion", "OSGI Bundle Version");
searchFields.put( "bundleSymbolicName", "OSGI Bundle-SymbolicName" ); searchFields.put("bundleSymbolicName", "OSGI Bundle-SymbolicName");
searchFields.put( "bundleExportPackage", "OSGI Export-Package" ); searchFields.put("bundleExportPackage", "OSGI Export-Package");
searchFields.put( "bundleImportPackage", "OSGI import package" ); searchFields.put("bundleImportPackage", "OSGI import package");
searchFields.put( "bundleName", "OSGI name" ); searchFields.put("bundleName", "OSGI name");
searchFields.put( "bundleExportService", "OSGI Export-Service" ); searchFields.put("bundleExportService", "OSGI Export-Service");
super.clearErrorsAndMessages( ); super.clearErrorsAndMessages();
clearSearchFields( ); clearSearchFields();
} }
private void clearSearchFields( ) private void clearSearchFields()
{ {
repositoryId = ""; repositoryId = "";
artifactId = ""; artifactId = "";
@ -213,103 +213,103 @@ public class SearchAction
} }
// advanced search MRM-90 -- filtered search // advanced search MRM-90 -- filtered search
public String filteredSearch( ) public String filteredSearch()
throws MalformedURLException throws MalformedURLException
{ {
if ( StringUtils.isBlank( groupId ) && StringUtils.isBlank( artifactId ) && StringUtils.isBlank( className ) if ( StringUtils.isBlank(groupId) && StringUtils.isBlank(artifactId) && StringUtils.isBlank(className)
&& StringUtils.isBlank( version ) && StringUtils.isBlank( bundleExportPackage ) && StringUtils.isBlank( && StringUtils.isBlank(version) && StringUtils.isBlank(bundleExportPackage) && StringUtils.isBlank(
bundleExportService ) && StringUtils.isBlank( bundleImportPackage ) && StringUtils.isBlank( bundleName ) bundleExportService) && StringUtils.isBlank(bundleImportPackage) && StringUtils.isBlank(bundleName)
&& StringUtils.isBlank( bundleSymbolicName ) && StringUtils.isBlank( bundleVersion ) ) && StringUtils.isBlank(bundleSymbolicName) && StringUtils.isBlank(bundleVersion) )
{ {
addActionError( "Advanced Search - At least one search criteria must be provided." ); addActionError("Advanced Search - At least one search criteria must be provided.");
return INPUT; return INPUT;
} }
fromFilterSearch = true; fromFilterSearch = true;
if ( CollectionUtils.isEmpty( managedRepositoryList ) ) if ( CollectionUtils.isEmpty(managedRepositoryList) )
{ {
return GlobalResults.ACCESS_TO_NO_REPOS; return GlobalResults.ACCESS_TO_NO_REPOS;
} }
SearchResultLimits limits = new SearchResultLimits( currentPage ); SearchResultLimits limits = new SearchResultLimits(currentPage);
limits.setPageSize( rowCount ); limits.setPageSize(rowCount);
List<String> selectedRepos = new ArrayList<String>( ); List<String> selectedRepos = new ArrayList<String>();
if ( repositoryId == null || StringUtils.isBlank( repositoryId ) || "all".equals( if ( repositoryId == null || StringUtils.isBlank(repositoryId) || "all".equals(
StringUtils.stripToEmpty( repositoryId ) ) ) StringUtils.stripToEmpty(repositoryId)) )
{ {
selectedRepos = getObservableRepos( ); selectedRepos = getObservableRepos();
} }
else else
{ {
selectedRepos.add( repositoryId ); selectedRepos.add(repositoryId);
} }
if ( CollectionUtils.isEmpty( selectedRepos ) ) if ( CollectionUtils.isEmpty(selectedRepos) )
{ {
return GlobalResults.ACCESS_TO_NO_REPOS; return GlobalResults.ACCESS_TO_NO_REPOS;
} }
SearchFields searchFields = new SearchFields( groupId, artifactId, version, null, className, selectedRepos ); SearchFields searchFields = new SearchFields(groupId, artifactId, version, null, className, selectedRepos);
if ( StringUtils.isNotBlank( this.bundleExportPackage ) ) if ( StringUtils.isNotBlank(this.bundleExportPackage) )
{ {
searchFields.setBundleExportPackage( this.bundleExportPackage ); searchFields.setBundleExportPackage(this.bundleExportPackage);
} }
if ( StringUtils.isNotBlank( this.bundleExportService ) ) if ( StringUtils.isNotBlank(this.bundleExportService) )
{ {
searchFields.setBundleExportService( this.bundleExportService ); searchFields.setBundleExportService(this.bundleExportService);
} }
if ( StringUtils.isNotBlank( this.bundleImportPackage ) ) if ( StringUtils.isNotBlank(this.bundleImportPackage) )
{ {
searchFields.setBundleImportPackage( this.bundleImportPackage ); searchFields.setBundleImportPackage(this.bundleImportPackage);
} }
if ( StringUtils.isNotBlank( this.bundleSymbolicName ) ) if ( StringUtils.isNotBlank(this.bundleSymbolicName) )
{ {
searchFields.setBundleSymbolicName( this.bundleSymbolicName ); searchFields.setBundleSymbolicName(this.bundleSymbolicName);
} }
if ( StringUtils.isNotBlank( this.bundleName ) ) if ( StringUtils.isNotBlank(this.bundleName) )
{ {
searchFields.setBundleName( this.bundleName ); searchFields.setBundleName(this.bundleName);
} }
if ( StringUtils.isNotBlank( this.bundleVersion ) ) if ( StringUtils.isNotBlank(this.bundleVersion) )
{ {
searchFields.setBundleVersion( this.bundleVersion ); searchFields.setBundleVersion(this.bundleVersion);
} }
log.debug( "filteredSearch with searchFields {}", searchFields ); log.debug("filteredSearch with searchFields {}", searchFields);
// TODO: add packaging in the list of fields for advanced search (UI)? // TODO: add packaging in the list of fields for advanced search (UI)?
try try
{ {
results = getNexusSearch( ).search( getPrincipal( ), searchFields, limits ); results = getNexusSearch().search(getPrincipal(), searchFields, limits);
} }
catch ( RepositorySearchException e ) catch ( RepositorySearchException e )
{ {
addActionError( e.getMessage( ) ); addActionError(e.getMessage());
return ERROR; return ERROR;
} }
if ( results.isEmpty( ) ) if ( results.isEmpty() )
{ {
addActionError( "No results found" ); addActionError("No results found");
return INPUT; return INPUT;
} }
totalPages = results.getTotalHits( ) / limits.getPageSize( ); totalPages = results.getTotalHits() / limits.getPageSize();
if ( ( results.getTotalHits( ) % limits.getPageSize( ) ) != 0 ) if ( ( results.getTotalHits() % limits.getPageSize() ) != 0 )
{ {
totalPages = totalPages + 1; totalPages = totalPages + 1;
} }
for ( SearchResultHit hit : results.getHits( ) ) for ( SearchResultHit hit : results.getHits() )
{ {
// fix version ? // fix version ?
//hit.setVersion( VersionUtil.getBaseVersion( version ) ); //hit.setVersion( VersionUtil.getBaseVersion( version ) );
@ -320,7 +320,7 @@ public class SearchAction
} }
@SuppressWarnings( "unchecked" ) @SuppressWarnings( "unchecked" )
public String quickSearch( ) public String quickSearch()
throws MalformedURLException throws MalformedURLException
{ {
/* TODO: give action message if indexing is in progress. /* TODO: give action message if indexing is in progress.
@ -329,93 +329,92 @@ public class SearchAction
* present in the full text search. * present in the full text search.
*/ */
assert q != null && q.length( ) != 0; assert q != null && q.length() != 0;
fromFilterSearch = false; fromFilterSearch = false;
SearchResultLimits limits = new SearchResultLimits( currentPage ); SearchResultLimits limits = new SearchResultLimits(currentPage);
List<String> selectedRepos = getObservableRepos( ); List<String> selectedRepos = getObservableRepos();
if ( CollectionUtils.isEmpty( selectedRepos ) ) if ( CollectionUtils.isEmpty(selectedRepos) )
{ {
return GlobalResults.ACCESS_TO_NO_REPOS; return GlobalResults.ACCESS_TO_NO_REPOS;
} }
log.debug( "quickSearch with selectedRepos {} query {}", selectedRepos, q ); log.debug("quickSearch with selectedRepos {} query {}", selectedRepos, q);
try try
{ {
if ( searchResultsOnly && !completeQueryString.equals( "" ) ) if ( searchResultsOnly && !completeQueryString.equals("") )
{ {
results = results = getNexusSearch().search(getPrincipal(), selectedRepos, q, limits, parseCompleteQueryString());
getNexusSearch( ).search( getPrincipal( ), selectedRepos, q, limits, parseCompleteQueryString( ) );
} }
else else
{ {
completeQueryString = ""; completeQueryString = "";
results = getNexusSearch( ).search( getPrincipal( ), selectedRepos, q, limits, null ); results = getNexusSearch().search(getPrincipal(), selectedRepos, q, limits, null);
} }
} }
catch ( RepositorySearchException e ) catch ( RepositorySearchException e )
{ {
addActionError( e.getMessage( ) ); addActionError(e.getMessage());
return ERROR; return ERROR;
} }
if ( results.isEmpty( ) ) if ( results.isEmpty() )
{ {
addActionError( "No results found" ); addActionError("No results found");
return INPUT; return INPUT;
} }
totalPages = results.getTotalHits( ) / limits.getPageSize( ); totalPages = results.getTotalHitsMapSize() / limits.getPageSize();
if ( ( results.getTotalHits( ) % limits.getPageSize( ) ) != 0 ) if ( ( results.getTotalHitsMapSize() % limits.getPageSize() ) != 0 )
{ {
totalPages = totalPages + 1; totalPages = totalPages + 1;
} }
if ( !isEqualToPreviousSearchTerm( q ) ) if ( !isEqualToPreviousSearchTerm(q) )
{ {
buildCompleteQueryString( q ); buildCompleteQueryString(q);
} }
return SUCCESS; return SUCCESS;
} }
public String findArtifact( ) public String findArtifact()
throws Exception throws Exception
{ {
// TODO: give action message if indexing is in progress // TODO: give action message if indexing is in progress
if ( StringUtils.isBlank( q ) ) if ( StringUtils.isBlank(q) )
{ {
addActionError( "Unable to search for a blank checksum" ); addActionError("Unable to search for a blank checksum");
return INPUT; return INPUT;
} }
databaseResults = new ArrayList<ArtifactMetadata>( ); databaseResults = new ArrayList<ArtifactMetadata>();
RepositorySession repositorySession = repositorySessionFactory.createSession( ); RepositorySession repositorySession = repositorySessionFactory.createSession();
try try
{ {
MetadataRepository metadataRepository = repositorySession.getRepository( ); MetadataRepository metadataRepository = repositorySession.getRepository();
for ( String repoId : getObservableRepos( ) ) for ( String repoId : getObservableRepos() )
{ {
databaseResults.addAll( metadataRepository.getArtifactsByChecksum( repoId, q ) ); databaseResults.addAll(metadataRepository.getArtifactsByChecksum(repoId, q));
} }
} }
finally finally
{ {
repositorySession.close( ); repositorySession.close();
} }
if ( databaseResults.isEmpty( ) ) if ( databaseResults.isEmpty() )
{ {
addActionError( "No results found" ); addActionError("No results found");
return INPUT; return INPUT;
} }
if ( databaseResults.size( ) == 1 ) if ( databaseResults.size() == 1 )
{ {
// 1 hit? return it's information directly! // 1 hit? return it's information directly!
return ARTIFACT; return ARTIFACT;
@ -424,19 +423,19 @@ public class SearchAction
return RESULTS; return RESULTS;
} }
public String doInput( ) public String doInput()
{ {
return INPUT; return INPUT;
} }
private void buildCompleteQueryString( String searchTerm ) private void buildCompleteQueryString(String searchTerm)
{ {
if ( searchTerm.indexOf( COMPLETE_QUERY_STRING_SEPARATOR ) != -1 ) if ( searchTerm.indexOf(COMPLETE_QUERY_STRING_SEPARATOR) != -1 )
{ {
searchTerm = StringUtils.remove( searchTerm, COMPLETE_QUERY_STRING_SEPARATOR ); searchTerm = StringUtils.remove(searchTerm, COMPLETE_QUERY_STRING_SEPARATOR);
} }
if ( completeQueryString == null || "".equals( completeQueryString ) ) if ( completeQueryString == null || "".equals(completeQueryString) )
{ {
completeQueryString = searchTerm; completeQueryString = searchTerm;
} }
@ -446,21 +445,21 @@ public class SearchAction
} }
} }
private List<String> parseCompleteQueryString( ) private List<String> parseCompleteQueryString()
{ {
List<String> parsedCompleteQueryString = new ArrayList<String>( ); List<String> parsedCompleteQueryString = new ArrayList<String>();
String[] parsed = StringUtils.split( completeQueryString, COMPLETE_QUERY_STRING_SEPARATOR ); String[] parsed = StringUtils.split(completeQueryString, COMPLETE_QUERY_STRING_SEPARATOR);
CollectionUtils.addAll( parsedCompleteQueryString, parsed ); CollectionUtils.addAll(parsedCompleteQueryString, parsed);
return parsedCompleteQueryString; return parsedCompleteQueryString;
} }
private boolean isEqualToPreviousSearchTerm( String searchTerm ) private boolean isEqualToPreviousSearchTerm(String searchTerm)
{ {
if ( !"".equals( completeQueryString ) ) if ( !"".equals(completeQueryString) )
{ {
String[] parsed = StringUtils.split( completeQueryString, COMPLETE_QUERY_STRING_SEPARATOR ); String[] parsed = StringUtils.split(completeQueryString, COMPLETE_QUERY_STRING_SEPARATOR);
if ( StringUtils.equalsIgnoreCase( searchTerm, parsed[parsed.length - 1] ) ) if ( StringUtils.equalsIgnoreCase(searchTerm, parsed[parsed.length - 1]) )
{ {
return true; return true;
} }
@ -469,259 +468,259 @@ public class SearchAction
return false; return false;
} }
public String getQ( ) public String getQ()
{ {
return q; return q;
} }
public void setQ( String q ) public void setQ(String q)
{ {
this.q = q; this.q = q;
} }
public SearchResults getResults( ) public SearchResults getResults()
{ {
return results; return results;
} }
public List<ArtifactMetadata> getDatabaseResults( ) public List<ArtifactMetadata> getDatabaseResults()
{ {
return databaseResults; return databaseResults;
} }
public void setCurrentPage( int page ) public void setCurrentPage(int page)
{ {
this.currentPage = page; this.currentPage = page;
} }
public int getCurrentPage( ) public int getCurrentPage()
{ {
return currentPage; return currentPage;
} }
public int getTotalPages( ) public int getTotalPages()
{ {
return totalPages; return totalPages;
} }
public void setTotalPages( int totalPages ) public void setTotalPages(int totalPages)
{ {
this.totalPages = totalPages; this.totalPages = totalPages;
} }
public boolean isSearchResultsOnly( ) public boolean isSearchResultsOnly()
{ {
return searchResultsOnly; return searchResultsOnly;
} }
public void setSearchResultsOnly( boolean searchResultsOnly ) public void setSearchResultsOnly(boolean searchResultsOnly)
{ {
this.searchResultsOnly = searchResultsOnly; this.searchResultsOnly = searchResultsOnly;
} }
public String getCompleteQueryString( ) public String getCompleteQueryString()
{ {
return completeQueryString; return completeQueryString;
} }
public void setCompleteQueryString( String completeQueryString ) public void setCompleteQueryString(String completeQueryString)
{ {
this.completeQueryString = completeQueryString; this.completeQueryString = completeQueryString;
} }
public Map<String, ManagedRepository> getManagedRepositories( ) public Map<String, ManagedRepository> getManagedRepositories()
throws RepositoryAdminException throws RepositoryAdminException
{ {
return managedRepositoryAdmin.getManagedRepositoriesAsMap( ); return managedRepositoryAdmin.getManagedRepositoriesAsMap();
} }
// wtf : does nothing ?? // wtf : does nothing ??
public void setManagedRepositories( Map<String, ManagedRepository> managedRepositories ) public void setManagedRepositories(Map<String, ManagedRepository> managedRepositories)
{ {
} }
public String getGroupId( ) public String getGroupId()
{ {
return groupId; return groupId;
} }
public void setGroupId( String groupId ) public void setGroupId(String groupId)
{ {
this.groupId = groupId; this.groupId = groupId;
} }
public String getArtifactId( ) public String getArtifactId()
{ {
return artifactId; return artifactId;
} }
public void setArtifactId( String artifactId ) public void setArtifactId(String artifactId)
{ {
this.artifactId = artifactId; this.artifactId = artifactId;
} }
public String getVersion( ) public String getVersion()
{ {
return version; return version;
} }
public void setVersion( String version ) public void setVersion(String version)
{ {
this.version = version; this.version = version;
} }
public int getRowCount( ) public int getRowCount()
{ {
return rowCount; return rowCount;
} }
public void setRowCount( int rowCount ) public void setRowCount(int rowCount)
{ {
this.rowCount = rowCount; this.rowCount = rowCount;
} }
public boolean isFilterSearch( ) public boolean isFilterSearch()
{ {
return filterSearch; return filterSearch;
} }
public void setFilterSearch( boolean filterSearch ) public void setFilterSearch(boolean filterSearch)
{ {
this.filterSearch = filterSearch; this.filterSearch = filterSearch;
} }
public String getRepositoryId( ) public String getRepositoryId()
{ {
return repositoryId; return repositoryId;
} }
public void setRepositoryId( String repositoryId ) public void setRepositoryId(String repositoryId)
{ {
this.repositoryId = repositoryId; this.repositoryId = repositoryId;
} }
public List<String> getManagedRepositoryList( ) public List<String> getManagedRepositoryList()
{ {
return managedRepositoryList; return managedRepositoryList;
} }
public void setManagedRepositoryList( List<String> managedRepositoryList ) public void setManagedRepositoryList(List<String> managedRepositoryList)
{ {
this.managedRepositoryList = managedRepositoryList; this.managedRepositoryList = managedRepositoryList;
} }
public String getClassName( ) public String getClassName()
{ {
return className; return className;
} }
public void setClassName( String className ) public void setClassName(String className)
{ {
this.className = className; this.className = className;
} }
public RepositorySearch getNexusSearch( ) public RepositorySearch getNexusSearch()
{ {
if ( nexusSearch == null ) if ( nexusSearch == null )
{ {
WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext( WebApplicationContext wac =
ServletActionContext.getServletContext( ) ); WebApplicationContextUtils.getRequiredWebApplicationContext(ServletActionContext.getServletContext());
nexusSearch = wac.getBean( "nexusSearch", RepositorySearch.class ); nexusSearch = wac.getBean("nexusSearch", RepositorySearch.class);
} }
return nexusSearch; return nexusSearch;
} }
public void setNexusSearch( RepositorySearch nexusSearch ) public void setNexusSearch(RepositorySearch nexusSearch)
{ {
this.nexusSearch = nexusSearch; this.nexusSearch = nexusSearch;
} }
public Map<String, String> getSearchFields( ) public Map<String, String> getSearchFields()
{ {
return searchFields; return searchFields;
} }
public void setSearchFields( Map<String, String> searchFields ) public void setSearchFields(Map<String, String> searchFields)
{ {
this.searchFields = searchFields; this.searchFields = searchFields;
} }
public String getInfoMessage( ) public String getInfoMessage()
{ {
return infoMessage; return infoMessage;
} }
public void setInfoMessage( String infoMessage ) public void setInfoMessage(String infoMessage)
{ {
this.infoMessage = infoMessage; this.infoMessage = infoMessage;
} }
public ManagedRepositoryAdmin getManagedRepositoryAdmin( ) public ManagedRepositoryAdmin getManagedRepositoryAdmin()
{ {
return managedRepositoryAdmin; return managedRepositoryAdmin;
} }
public void setManagedRepositoryAdmin( ManagedRepositoryAdmin managedRepositoryAdmin ) public void setManagedRepositoryAdmin(ManagedRepositoryAdmin managedRepositoryAdmin)
{ {
this.managedRepositoryAdmin = managedRepositoryAdmin; this.managedRepositoryAdmin = managedRepositoryAdmin;
} }
public String getBundleVersion( ) public String getBundleVersion()
{ {
return bundleVersion; return bundleVersion;
} }
public void setBundleVersion( String bundleVersion ) public void setBundleVersion(String bundleVersion)
{ {
this.bundleVersion = bundleVersion; this.bundleVersion = bundleVersion;
} }
public String getBundleSymbolicName( ) public String getBundleSymbolicName()
{ {
return bundleSymbolicName; return bundleSymbolicName;
} }
public void setBundleSymbolicName( String bundleSymbolicName ) public void setBundleSymbolicName(String bundleSymbolicName)
{ {
this.bundleSymbolicName = bundleSymbolicName; this.bundleSymbolicName = bundleSymbolicName;
} }
public String getBundleExportPackage( ) public String getBundleExportPackage()
{ {
return bundleExportPackage; return bundleExportPackage;
} }
public void setBundleExportPackage( String bundleExportPackage ) public void setBundleExportPackage(String bundleExportPackage)
{ {
this.bundleExportPackage = bundleExportPackage; this.bundleExportPackage = bundleExportPackage;
} }
public String getBundleImportPackage( ) public String getBundleImportPackage()
{ {
return bundleImportPackage; return bundleImportPackage;
} }
public void setBundleImportPackage( String bundleImportPackage ) public void setBundleImportPackage(String bundleImportPackage)
{ {
this.bundleImportPackage = bundleImportPackage; this.bundleImportPackage = bundleImportPackage;
} }
public String getBundleName( ) public String getBundleName()
{ {
return bundleName; return bundleName;
} }
public void setBundleName( String bundleName ) public void setBundleName(String bundleName)
{ {
this.bundleName = bundleName; this.bundleName = bundleName;
} }
public String getBundleExportService( ) public String getBundleExportService()
{ {
return bundleExportService; return bundleExportService;
} }
public void setBundleExportService( String bundleExportService ) public void setBundleExportService(String bundleExportService)
{ {
this.bundleExportService = bundleExportService; this.bundleExportService = bundleExportService;
} }

View File

@ -136,10 +136,10 @@
<c:when test="${results.totalHits > results.limits.pageSize}"> <c:when test="${results.totalHits > results.limits.pageSize}">
<c:choose> <c:choose>
<c:when test="${fn:length(results.hits) < rowCount}"> <c:when test="${fn:length(results.hits) < rowCount}">
<p>Hits: ${(rowCount * currentPage) + 1} to ${hitsNum} of ${results.totalHits}</p> <p>Hits: ${(rowCount * currentPage) + 1} to ${hitsNum} of ${results.totalHitsMapSize}</p>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
<p>Hits: ${(hitsNum - results.limits.pageSize) + 1} to ${hitsNum} of ${results.totalHits}</p> <p>Hits: ${(hitsNum - results.limits.pageSize) + 1} to ${hitsNum} of ${results.totalHitsMapSize}</p>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</c:when> </c:when>