TNS Internal:NDR/Browser/Testing

From NSDLWiki

Jump to: navigation, search

NDR Browser - Testing

Browse by Object

The links in this document assume that the base path for the browser is: http://localhost:8080/ndr_browser/


Image:Greenck.jpg Success: High Coverage Image:Blueck.jpg Success: Low Coverage Image:Caution.jpg Partially Successful Image:Stop.jpg Fails Test Image:Nosup.jpg Untested


Status Feature Processing Performance Comments
All Agents
Image:Blueck.jpg List all agents.
Action class: api.action.byType.BrowseAgents
Processing method: AgentAPIWrapper.getAgentList()
Query: CommonCalls.findByType(...'agent'...)
count=841
2:15 m for getObjects
1:45 m for getDatastreams
4:00 m total for both
Agent's -> Aggregators
Image:Blueck.jpg List aggregators for an agent.
Action class: api.action.byRelationship.BrowseAgentAggregators
Processing method: AgentAPIWrapper.getAggregatorsForAgent()
Query: * aggregatorFor <agent>
count=226
N/A for getObjects
47 s for getDatastreams
47 s total for both
Tested agents:
Agent's -> Metadata Providers
Image:Blueck.jpg List metadata providers for an agent.
Action class: api.action.byRelationship.BrowseAgentMetadataProviders
Processing method: AgentAPIWrapper.getMetadataProvidersForAgent()
Query: * metadataProviderFor <agent>
count=191
N/A for getObjects
1:10 m for getDatastreams
1:10 m total for both
Tested agents:


All Aggregators
Image:Blueck.jpg List all aggregators.
Action class: api.action.byType.BrowseAggregators
Processing method: AggregatorAPIWrapper.getAggregatorList()
Query: CommonCalls.findByType(...'aggregator'...)
count=1227
N/A for getObjects
4:55 m for getDatastreams
4:55 m total for both
Aggregator's -> Metadata Providers
Image:Blueck.jpg List metadata providers aggregated by an aggregator.
Action class: api.action.byRelationship.BrowseAggregatorMetadataProviders
Processing method: AggregatorAPIWrapper.getMDPsAggregatedByAggregator()
Query: * aggregatorBy <aggregator>
count=2
N/A for getObjects
1 s for getDatastreams
1 s total for both
Tested aggregators:


Aggregator's -> Metadata
Image:Blueck.jpg List metadata for an aggregator.
Action class: api.action.byRelationship.BrowseAggregatorMetadata
Processing method: AggregatorAPIWrapper.getMetadataForAggregator()
Query: * metadataFor <aggregator>
count=1
N/A for getObjects
<1 s for getDatastreams
<1 s total for both
Tested aggregators:
Aggregator's -> Resources
Image:Blueck.jpg List member resources for an aggregator.
Action class: api.action.byRelationship.BrowseAggregatorResources
Processing method: AggregatorAPIWrapper.getResourcesMemberOfAggregator()
Query: * memberOf <aggregator>
count=483
N/A for getObjects
3:52 m for getDatastreams
3:52 m total for both
Tested aggregators:
Aggregator's -> Aggregators
Image:Blueck.jpg List member aggregators for an aggregator.
Action class: api.action.byRelationship.BrowseAggregatorAggregators
Processing method: AggregatorAPIWrapper.getAggregatorsMemberOfAggregator()
Query: * memberOf <aggregator>
count=1157
N/A for getObjects
4:30 m for getDatastreams
4:30 m total for both
Tested aggregators:
All Metadata Providers
Image:Blueck.jpg List all metadata providers.
Action class: api.action.byType.BrowseMetadataProviders
Processing method: MetadataProviderAPIWrapper.getMetadataProviderList()
Query: CommonCalls.findByType(...'metadataProvider'...)
count=310
N/A m for getObjects
2:00 m for getDatastreams
2:00 m total for both
Metadata Provider's -> Aggregators
Image:Blueck.jpg List aggregators associated with metadata provider.
Action class: api.action.byRelationship.BrowseMetadataProviderAggregators
Processing method: AggregatorAPIWrapper.getAggregatorsWhereMDPIsAggregatedBy()
Query: <metadataProvider> aggregatedBy *
count=1
N/A for getObjects
<1 s for getDatastreams
<1 s total for both
Tested metadata providers:
Metadata Provider's -> Metadata
Image:Blueck.jpg List metadata provided by a metadata provider.
Action class: api.action.byRelationship.BrowseMetadataProviderMetadata
Processing method: AggregatorAPIWrapper.getMetadataProvidedByMDP()
Query: * metadataProvidedBy <metadataProvider>
count=380
N/A for getObjects
2:25 m for getDatastreams
2:25 m total for both
Tested metadata providers:
All Metadata
Image:Stop.jpg List all metadata.
Action class: api.action.byType.BrowseMetadata
Processing method: MetadataAPIWrapper.getMetadataList()
Query: CommonCalls.findByType(...'metadata'...)
count=???
 ??? m for getObjects
 ??? m for getDatastreams
 ??? m total for both
FAIL: OutOfMemoryError: Java heap space
Metadata's -> objects metadata is about
Image:Nosup.jpg List objects that the metadata describes.
Action class: api.action.byRelationship.BrowseMetadataForObjects (doesn't exist)
Processing method: MetadataAPIWrapper.get???()
Query: <metadata> metadataFor *
count=???
 ??? s for getObjects
 ??? s for getDatastreams
 ??? s total for both
NOT DONE - need to resolve that objects may be of different object types.
Metadata's -> Parent Metadata Provider
Image:Blueck.jpg List metadata provider that provided the metadata. Should be only one.
Action class: api.action.byRelationship.BrowseMetadataMetadataProviders
Processing method: MetadataAPIWrapper.getMDPsProvidingMetadata()
Query: <metadata> metadataProvidedBy *
count=1
N/A for getObjects
<1 s for getDatastreams
<1 s total for both
Tested metadata:


All Resources
Image:Stop.jpg List all resources.
Action class: api.action.byType.BrowseResources
Processing method: ResourceAPIWrapper.getResourceList()
Query: CommonCalls.findByType(...'resource'...)
count=???
 ??? m for getObjects
 ??? m for getDatastreams
 ??? m total for both
FAIL: OutOfMemoryError: Java heap space
Resource's -> Metadata
Image:Blueck.jpg List metadata for a resource.
Action class: api.action.byRelationship.BrowseResourceMetadata
Processing method: ResourceAPIWrapper.getMetadataForResource()
Query: * metadataFor <resource>
count=1
N/A for getObjects
<1 s for getDatastreams
<1 s total for both
Tested resources:
Resource's -> Parent Aggregators
Image:Blueck.jpg List aggregators in which a resource is a member.
Action class: api.action.byRelationship.BrowseResourceAggregators
Processing method: ResourceAPIWrapper.getParentAggregatorsForResource()
Query: <resource> memberOf *
count=1
N/A for getObjects
<1 s for getDatastreams
<1 s total for both
Tested resources:


Browse by NSDL Collection

Image:Greenck.jpg Complete: Passed Testing Image:Blueck.jpg Complete: Not Fully Tested Image:Caution.jpg In Process Image:Stop.jpg Not Begun Image:Nosup.jpg Not Supported / Latered


Status Feature Processing Performance Comments
NSDL Collection Records
Image:Blueck.jpg List aggregators that are members of NSDL Collection of Collections
Uses: aggregatorAggregators/2200/NSDL_Collection_of_Collections_Aggregator
count=1157
N/A for getObjects
4:30 m for getDatastreams
4:30 m total for both
  • Needs its own processing. The breadcrumb shows what it would if Browse by Type were used.
  • To view collection items:
    • From list of aggregators, click REL: Metadata Providers, and then REL: Metadata
NSDL Collection Records
Image:Caution.jpg List metadata records that are provided by NSDL Collection Records.
Uses: metadataProviderMetadata/2200/20080317171403522T
count=238
N/A for getObjects
2:16 m for getDatastreams
2:16 m total for both
  • Needs its own processing. The breadcrumb shows what it would if Browse by Type were used.
  • To view collection items:
    •  ??? I couldn't find anything that connects the collection record to items within collections
NCS Managed Collections
Image:Blueck.jpg List metadata providers managed by NCS agent.
Uses: agentMetadataProviders/2200/NCS
count=191
N/A for getObjects
1:10 m for getDatastreams
1:10 m total for both
  • Needs its own processing. The breadcrumb shows what it would if Browse by Type were used.
  • To view collection items:
    • From list of metadata providers, click REL: Metadata
Expert Voices Collections
Image:Caution.jpg List collections (???) maintained by Expert Voices.
Uses: agentMetadataProviders/2200/20061002131039975T
count=191
N/A for getObjects
1:10 m for getDatastreams
1:10 m total for both
  • Needs its own processing. The breadcrumb shows what it would if Browse by Type were used.
  • From list of metadata providers, click REL: Metadata
  • This isn't quite the right thing to use. Need to understand the structure of how EV adds objects to NDR better.
Web Feed Ingest Collections
Image:Blueck.jpg List metadata providers maintained by Web Feed Ingest.
Action class: api.action.byNsdlCollection.BrowseWebFeedIngest
Processing method: MetadataProviderAPIWrapper.getWFIMetadataProvidersList()
Query: * wfi:WFIngestProvider true && auth:authorizedToChange 2200/20091105132121677T (WFI Agent Handle)
count=???
 ??? m for getObjects
 ??? m for getDatastreams
 ??? m total for both
Harvest Ingest Collections
Image:Nosup.jpg List collections (???) maintained by Harvest Ingest.
Uses:  ???
count=???
 ??? m for getObjects
 ??? m for getDatastreams
 ??? m total for both
  • How to identify harvest ingest collections?


Possible Improvements:

  • for long lists, break them up into pages so they don't take minutes to load
  • bookmarks are not dynamically based on how the user arrived at the page.


  • show ncs:status if available
    • property of resource metadata (ex. 2200/20090904155332111T)
    • property of collection metadata (ex. 2200/20061002125001945T) NOTE: collection metadata is metadata provider 2200/20080317171403522T (NSDL Collection Records)
NOTE: This would approximately double the time to display the list of metadata providers and the list of metadata. Currently, both of these object types get all their information from a single datastream. Adding the display of ncs:status would require getting properties from the object xml, which is currently not accessed to construct the lists.
  • add ability to limit by ncs:status


  • show oai:visibility if available
    • property of metadata provider (ex. 2200/20090904131228646T)
    • property of metadata (ex. 2200/20090904155332111T)
NOTE: This would approximately double the time to display the list of metadata providers and the list of metadata. Currently, both of these object types get all their information from a single datastream. Adding the display of ncs:status would require getting properties from the object xml, which is currently not accessed to construct the lists.
  • add ability to limit by oai:visibility


  • sorting results
    • by Title
    • by Handle
    • by ncs:status


  • search
    • by Title


  • how to get back to the agent from anything?
Personal tools