
----
h1. Editing a Data Service with Introduce
----
Data services may be edited via the [Introduce|introduce14:Home] toolkit in conjunction with the data services extension. When a data service is created or opened with Introduce, the data service extension adds a tab to the main service modification window titled "Data Service." This tab has a number of sub-tabs which control or display various aspects of the data service.
h2. Domain Model Tab
The first tab shown is the Domain Model tab. This tab allows the service developer to control aspects of the service's exposed data model.
{image-with-caption:tablealign=center|pagename=imagegallery:Data Service - Domain Model Tab.png|attachmentname=Data Service - Domain Model Tab.png|caption=Data Service Domain Model Tab}This tab allows the service developer to select the project and packages from the caDSR which the data service should expose. Individual classes may be added or removed from the model by using the tree of packages and classes and checking the box next to classes to be included at the bottom. The "Visualize Domain Model" button shows a graphical representation of the current domain model, including classes, their attributes, and associations. The "Advanced Options" button gives the service developer access to options for no domain model and a model from the local file system. In the case either of these options is selected, the class selection tree on the Domain Model tab is disabled.
h2. Query Processor Tab
The next tab is the Query Processor tab. This tab allows the service developer to set the query processor class which will be used to handle CQL against the service's backend data store, as well as configure the query processor's parameters.
{image-with-caption:tablealign=center|pagename=imagegallery:Data Service - Query Processor Tab.png|attachmentname=Data Service - Query Processor Tab.png|caption=Data Service Query Processor Tab}The selected class dropdown menu shows all classes found in the jars list which extend from the base abstract CQL query processor class. To add a new class to this list, it must appear in a jar file listed in the Additional Jars list. Jars can be added by using the Add Jar button and browsing to the jar file on your local file system. This will copy the jar into your service. The Remove Jars button removes the selected jars from the list.
The Launch Query Processor Configurator button will launch a special dialog for configuring the selected query processor, if it supplies one. If it does not, a message will be displayed indicating as much.
The Processor Parameter Configuration table shows the configuration properties of the selected query processor, their default value, and the currently configured value. The values may be edited in this table, or in the service properties table directly. Changes in one of these tables are reflected in the other, with the exception that the properties on this page are not prefixed for readability.
h2. Details Tab
The details tab allows the service developer to control mapping between XML schema types and the data types in the exposed domain model, as well as enable or disable query validation.
{image-with-caption:tablealign=center|pagename=imagegallery:Data Service - Details Tab.png|attachmentname=Data Service - Details Tab.png|caption=Data Service Details Tab}The serializer and deserializer fields may be edited by right-clicking and choosing an option from the popup menu which appears. Selecting custom serialization allows the service developer to manually enter class names, and default serialization resets the fields to be blank, allowing Globus and Axis to handle serialization and deserialization.
The targetable field contains a check box which indicates that a class is eligible to be the target of a CQL query. If deselected, a class can still be part of a query (i.e. an Association somewhere within the query), but cannot ever be returned by a query. Queries against classes which are not targetable will generate an error.