Searching artifacts across SCA domain

Candidate: Wojtek Janiszewski <wojtek.janiszewski AT gmail DOT com>

1. General

2. Project description

2.1 (Project goal)

Implementation of search feature should cover three main areas, which are indexing, searching and presentation. Such separation gives us modularity, which implies reuse of components and ability to test easily.

2.2 Indexing

Indexing would be backed by Apache Lucene indexing mechanisms. It should include all available contributions. Each contribution should be scanned for files known for Apache Tuscany and every file should be indexed in various contexts:

Adding, updating or removing contribution should cause reindexing such element.

Every indexed item (every possible contribution member) should have some identifier, which could be used as reference for other items.

Every item should be linked to some parent items:

Additionally we could have some some connection to runtime artifacts, so contribution could contain links to nodes which hosts them. This would be indirect connection to runtime element for every contribution member.

2.3 Searching

Searching would be backed by Apache Lucene search engine.

Custom search API for Apache Tuscany would be available via SCA component and would allow to do searches based on:

Such search component can be reused in various scenarios, it can be exposed via one of Apache Tuscany bindings. In this case we would like to use such component as a feed for web based UI.

2.4 Presentation

2.4.1 Navigation

Navigation could be performed in two ways:

1. By using search box where user can type query, for "fetch by phrase" search method

2. By using links to items where user can navigate through references ("fetch by item" method). Such links could be found in several places:

Search box could have facilities which could help entering queries:

2.4.2 Results

Display layout would be common for both "fetch by phrase" and "fetch by item". Every search would be displayed as list of results. For long result lists paging would be applied. Furthermore having sort feature would improve navigation through results list:

View for each search result element should contain:

3. Timeline

Before May 23

Getting started

May 23 - July 5

First phase of the development

July 6 - July 13

Midterm evaluation

Submitting mid-term evaluation.

July 14 - August 9

Second phase of the development

August 10 - August 17

August 18 - September 24

Final evaluation

Submitting final evaluation