TemplateIndexOrder.jxb (it also should be also renamed with the same name as schema)

schema.cmd

OSGi and Declarative Service requirements

it is not required to implement a BundleActivator (this may change if SCA Nodes are used, then it may be required to register the Crawler)

create a top level folder OSGI-INF

create a Component Description file in OSGI-INF. You can name the file as you like, but it is good practice to name it like the Crawler. Therein you have to provide a unique component name, it should be the same as the Crawler's name followed by DS (for DeclarativeService). Then you have to provide your implementation class and the service interface class, which is always org.eclipse.eilf.connectivity.framework.Crawler.

SCA requirements

Most requirements for SCA are already handled by the base class org.eclipse.eilf.connectivity.framework.AbstractCrawler. You should annotate your implementation with @AllowsPassByReference, to allow SCA to pass service parameters by reference when service interactions are within the same adress space. Here is an example:

For SCA, make sure to set attribute "immediate" of tag "component" to false and attribute "servicefactory" of tag "service " to true in your xml-file. This is required to let SCA dynamically create ServiceReferences. Finally you have to provide a value for the property org.eclipse.eilf.connectivity.framework.crawler.type. This is used by SCA to find the correct OSGi Declarative Service during runtime. The value has to be unique (it is used in SCA contribution files) and should be named like the Crawler. Here is an example: