Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Creating This topic explains the purpose of using custom datasources allows and how you to can define your own datasource implementationcustom datasource implementations using the management console. Alternatively, you can simply create datasources using the default RDBMS configuration provided in WSO2 products.

Info

Note that when you define a data service, you have the option of using the common datasource types, such as EXCEL, CSV etc. in addition to custom datasources. See the topic on creating datasources for a data service.

Table of Contents
maxLevel3
minLevel3
 

About custom datasources

There Custom datasources allows you to define your own datasource implementation. There are two options for writing a custom datasource, and these two options cover most of the common business use cases as follows:

...

  1. Go to the Configure tab on the management console and click Data Sources to open the Data Sources screen.
  2. Then click Add Data Source. The following screen will open:
     
  3. Enter "Custom" as the datasource type.
  4. In the Custom Data Source Type field, enter "DS_CUSTOM_TABULAR" (to store data in tables) or "DS_CUSTOM_QUERY" (to store non-tabular data accessed through a query).
  5. In the Name and Description fields, enter a unique name for the datasource.
  6. In the Configuration section, specify the xml configuration of the datasource. See the examples given below.
    • XML configuration for a custom tabular datasource (DS_CUSTOM_TABULAR type):

      Code Block
      <configuration>
      	<customDataSourceClass>org.wso2.carbon.dataservices.core.custom.datasource.InMemoryDataSource</customDataSourceClass>
      	 <customDataSourceProps>
            <property name="inmemory_datasource_schema">{Vehicles:[ID,Model,Classification,Year]}</property>
            <property name="inmemory_datasource_records">
                 {Vehicles:[["S10_1678","Harley Davidson Ultimate Chopper","Motorcycles","1969"],
                            ["S10_1949","Alpine Renault 1300","Classic Cars","1952"],
                            ["S10_2016","Moto Guzzi 1100i","Motorcycles","1996"],
                            ["S10_4698","Harley-Davidson Eagle Drag Bike","Motorcycles","2003"],
                            ["S10_4757","Alfa Romeo GTA","Classic Cars","1972"],
                            ["S10_4962","LanciaA Delta 16V","Classic Cars","1962"],
                            ["S12_1099","Ford Mustang","Classic Cars","1968"],
                            ["S12_1108","Ferrari Enzo","Classic Cars","2001"]]}
             </property>
          </customDataSourceProps>
      </configuration>
    • XML configuration for a custom query datasource (DS_CUSTOM_QUERY):

      Code Block
      <configuration>
      	<customDataSourceClass>org.wso2.carbon.dataservices.core.custom.datasource.EchoDataSource</customDataSourceClass>
          	<customDataSourceProps>
                  <property name="p1">val1</property>
                  <property name="p2">val2</property>
              </customDataSourceProps>
      </configuration>

...