Apache Cassandra Connector 4.1 の例 - Mule 4

次の例は、Apache Cassandra Connector の設定方法を示しています。

新規 Apache Cassandra テーブルの作成

この例には次のフローが含まれます。

  • 最初のフロー: 新規テーブルのデータを伝送するために使用される、HTML 入力フォームのテンプレートを設定する。

  • 2 番目のフロー: 新規テーブルのキースペースを作成する。

  • 3 番目のフロー: 新規テーブルを作成する。

この例では一部の項目値に変数を使用しています。次のいずれかを実行できます。

  • コード内の変数をその値に置き換える

  • プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。

プロパティファイルの使用方法についての詳細は、「プロパティプレースホルダーの設定」を参照してください。

HTML 入力フォームのテンプレートの設定

次のフローは、新規テーブルを作成する HTML 入力を提供するために使用する、HTML テンプレートを設定します。

Parse Template フロー
Figure 1. HTML テンプレートの設定フロー

HTTP リスナーを設定する

ポート 8081 で ​/​ パスへのコールが行われたときに Mule フローを開始するように HTTP リスナーを設定します。

  1. Anypoint Studio で新しい Mule プロジェクトを作成します。

  2. Studio で ​[HTTP]​ をクリックし、​[Listener]​ 操作をキャンバスにドラッグします。

  3. [Listener]​ プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (​+​) をクリックしてグローバル要素を追加します。

  4. デフォルトを受け入れます。

  5. [Listener]​ プロパティウィンドウで、​[Path (パス)]​ 項目値を ​/​ に設定します。

Parse Template コンポーネントの追加

Parse Template​ コンポーネントを追加して、メインリソースフォルダーにある HTML フォーム (​form.html​) のテンプレートを作成します。例ではこのフォームを使用して、テーブルを作成するための情報を伝送します。

  1. [Mule Palette (Mule パレット)] ビューで「​parse​」を検索し、​[Core]​ > ​[Parse Template]​ を ​[Listener]​ の右側にドラッグします。

  2. [Location (場所)]​ 項目に「​form.html​」と入力します。

キースペースを作成する

次のフローは、新規テーブルのキースペースを作成します。

Create keyspace フロー
Figure 2. キースペースの作成フロー

HTTP リスナーを設定する

ポート ​8081​ で ​/test/createKeyspace​ パスへのコールが行われたときに Mule フローを開始するように HTTP リスナーを設定します。

  1. Anypoint Studio で新しい Mule プロジェクトを作成します。

  2. Studio で ​[HTTP]​ をクリックし、​[Listener]​ 操作をキャンバスにドラッグします。

  3. [Listener] プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (​+​) をクリックしてグローバル要素を追加します。

  4. デフォルトを受け入れます。

  5. [Listener]​ 設定ウィンドウで、​[Path (パス)]​ 項目値を ​/test/createKeyspace​ に設定します。

Transform Message コンポーネントの追加

Transform Message​ コンポーネントを追加して、​HTTP Listener​ から受信したペイロードに基づいて Java 変数を設定します。

  1. [Mule Palette (Mule パレット)] ビューから、​[Transform Message]​ コンポーネントを ​[Listener]​ の右側にドラッグします。

  2. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/java
    ---
    {
     "keyspaceName": payload.keyspaceName,
     "replicationFactor": payload.replicationFactor,
     "replicationStrategyClass": payload.replicationStrategyClass
    }
    as Object {
     class: "org.mule.modules.cassandradb.api.CreateKeyspaceInput"
    }

Create Keyspace 操作を追加する

新規テーブルが置かれるキースペースを作成するため、​Create keyspace​ 操作を追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[CassandDB]​ を選択して ​[Create keyspace]​ 操作を ​[Transform Message]​ コンポーネントの右側にドラッグします。

  2. [Create keyspace]​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (​+​) をクリックしてグローバル要素を追加します。

  3. グローバル要素の項目を次のように設定します。

    項目 説明

    Host (ホスト)

    ${cassandra.Host}

    Port (ポート)

    ${cassandra.Port}

    Keyspace (キースペース)

    ${cassandra.keySpace}

    Username (ユーザー名)

    ${cassandra.userName}

    Password (パスワード)

    ${cassandra.password}

  4. [Test Connection (接続をテスト)]​ をクリックして、Mule が Apache Cassandra インスタンスに接続できることを確認します。

    正常に接続できた場合は、​[OK]​ をクリックして設定を保存します。それ以外の場合、無効なパラメーターを確認および修正して、再度テストします。

  5. プロジェクトを保存します。

  6. ポート ​8081​ で ​test/createKeyspace​ パスに REST 要求を送信してアプリケーションをテストします。

新規テーブルを作成する

次のフローは、対象 Apache Cassandra データベースに新規テーブルを作成します。

Create Table フロー
Figure 3. 新規テーブルの作成フロー

HTTP リスナーを設定する

ポート ​8081​ で ​/test/createTable​ パスへのコールが行われたときに Mule フローを開始するように HTTP リスナーを設定します。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. Studio で ​[HTTP]​ をクリックし、​[Listener]​ 操作をキャンバスにドラッグします。

  3. [Listener]​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (​+​) をクリックしてグローバル要素を追加します。

  4. デフォルトを受け入れます。

  5. [Listener]​ 設定で、​[Path (パス)]​ 項目値を ​/test/createTable​ に設定します。

Transform Message コンポーネントの追加

Transform Message​ コンポーネントを追加して、​HTTP Listener​ から受信したペイロードに基づいて Java 変数を設定します。

  1. [Mule Palette (Mule パレット)] ビューから、​[Transform Message]​ コンポーネントを ​[Listener]​ の右側にドラッグします。

  2. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/java
    ---
    {
      "columns": payload.columns,
      "tableName": payload.tableName,
      "keyspaceName": payload.keyspaceName
    } as Object {
      class : "org.mule.modules.cassandradb.api.CreateTableInput"
    }

Create Table 操作を追加する

前のフローで作成したキースペースに新規テーブルを作成するため、​Create Table​ 操作を追加します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[CassandDB]​ を選択して ​[Create Table]​ 操作を ​[Transform Message]​ コンポーネントの右側にドラッグします。

  2. [Create Table]​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (​+​) をクリックします。

  3. Create keyspace​ 操作用に設定したグローバル要素を選択します。

  4. [OK]​ をクリックします。

  5. [Test Connection (接続をテスト)]​ をクリックして、Mule が Cassandra インスタンスに接続できることを確認します。

    クライアントテストに成功した場合は、​[OK]​ をクリックして設定を保存します。それ以外の場合、無効なパラメーターを確認および修正して、再度テストします。

  6. 保存して Mule アプリケーションを実行します。

  7. ポート ​8081​ で ​/test/createTable​ パスに ​POST​ コマンドを送信してアプリケーションをテストします。​application/json​ MIME タイプを使用して、データ型には大文字を使用し、コマンド本文にテーブルの説明を入力します。

    {
      "tableName": "users",
      "keyspaceName": "Excelsior",
      "columns":
      [
        {
          "name": "id",
          "type": "INT",
          "primaryKey": "true"
        },
        {
          "name": "username",
          "type": "TEXT",
          "primaryKey": "true"
        },
        {
          "name": "name",
          "type": "TEXT",
          "primaryKey": "false"
        },
        {
          "name": "email",
          "type": "TEXT",
          "primaryKey": "false"
        }
      ]
    }

Apache Cassandra キースペースとテーブルの作成例の XML

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:cassandra-db="http://www.mulesoft.org/schema/mule/cassandra-db"
xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core
http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/cassandra-db
http://www.mulesoft.org/schema/mule/cassandra-db/current/mule-cassandra-db.xsd">

  <configuration-properties file="mule-app.properties" />
  <http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config">
    <http:listener-connection host="0.0.0.0" port="8081" />
    </http:listener-config>
  <cassandra-db:config name="CassandraDB_Config" doc:name="CassandraDB Config">
    <cassandra-db:connection
      host="${config.host}"
      port="${config.port}"
      keyspace="${config.keyspace}"
      username="${config.username}"
      password="${config.password}"/>
	</cassandra-db:config>
  <flow name="HTMLForm">
    <http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/"/>
    <parse-template doc:name="Parse Template" location="form.html"/>
  </flow>
  <flow name="CreateKeyspace">
    <http:listener
      doc:name="Listener"
      config-ref="HTTP_Listener_config"
      path="/createKeyspace"/>
    <ee:transform doc:name="Transform Message">
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
{
  "keyspaceName": payload.keyspaceName,
  "replicationFactor": payload.replicationFactor,
  "replicationStrategyClass": payload.replicationStrategyClass
} as Object {
  class : "org.mule.modules.cassandradb.api.CreateKeyspaceInput"
}]]></ee:set-payload>
      </ee:message>
    </ee:transform>
    <cassandra-db:create-keyspace doc:name="Create keyspace" config-ref="CassandraDB_Config"/>
    <ee:transform doc:name="Transform Message">
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
  <flow name="CreateTable">
    <http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/createTable"/>
    <ee:transform doc:name="Transform Message">
      <ee:message>
        <ee:set-payload><![CDATA[%dw 2.0
output application/java
---
{
  "columns": payload.columns,
  "tableName": payload.tableName,
  "keyspaceName": payload.keyspaceName
} as Object {
  class : "org.mule.modules.cassandradb.api.CreateTableInput"
}]]></ee:set-payload>
      </ee:message>
    </ee:transform>
    <cassandra-db:create-table doc:name="Create table" config-ref="CassandraDB_Config"/>
    <ee:transform doc:name="Transform Message">
      <ee:message>
        <ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
</mule>

Apache Cassandra データベース内のデータの操作

この例は、Apache Cassandra データベース内のデータを操作するための次の方法を示しています。

キースペースからのテーブル名の取得

この Mule フローは、指定されたキースペースからすべてのテーブル名を返します。

Get Table Names from Keyspace 操作の Studio フロー

このフローでは、次を設定します。

  • HTTP Listener​ コンポーネント

  • Get Table Names from Keyspace​ 操作

  • [Transform Message]​ コンポーネント

HTTP リスナーを設定する

localhost​ のポート ​8081​ で ​/​ アカウントパスへのコールが行われたときに Mule フローを開始するように ​HTTP Listener​ を設定します。

この例では一部の項目値に変数を使用しています。次のいずれかを実行できます。

  • コード内で変数を値に置き換える。

  • プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。

プロパティファイルの使用方法についての詳細は、​「プロパティプレースホルダーの設定」​を参照してください。

HTTP リスナー​を設定するには、次の手順に従います。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューで「​http​」を検索し、​[Listener]​ 操作を選択します。

  3. Listener​ 操作をキャンバスにドラッグします。

  4. [Listener]​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[Add (追加)]​ アイコンをクリックしてグローバル要素を追加します。

  5. [OK]​ をクリックして、デフォルトを受け入れます。

  6. [Path (パス)]​ 項目を ​/getTablesFromKeyspace​ に設定します。

Get Table Names from Keyspace 操作を追加する

Get Table Names from Keyspace​ 操作は、指定されたキースペースからすべてのテーブル名を返します。

  1. Get Table Names from Keyspace​ 操作を、キャンバスの ​[HTTP Listener]​ の横にドラッグします。

  2. [Get Table Names from Keyspace]​ の設定で、 ​[Connector configuration (コネクタ設定)]​ ドロップダウンをクリックし、 ​[Cassandra​DB_C​onfig]​ を選択します。

  3. [Get Table Names from Keyspace]​ プロパティウィンドウで、次の項目を設定します。

    項目

    Keyspace name (キースペース名)

    #[payload.keyspaceName]

[Transform Message] コンポーネントを追加する

[Transform Message]​ コンポーネントは、キースペースのデータを変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​Get Table Names from Keyspace​ 操作の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/json
    ---
    payload

挿入

この Mule フローは、キースペースのテーブルにエンティティを挿入します。

Insert Entity 操作の Studio フロー

このフローでは、次を設定します。

  • HTTP Listener​ コンポーネント

  • [Transform Message]​ コンポーネント

  • Insert Entity​ 操作

  • 2 つ目の ​[Transform Message]​ コンポーネント

HTTP リスナーを設定する

localhost​ のポート ​8081​ で ​/​ アカウントパスへのコールが行われたときに Mule フローを開始するように ​HTTP Listener​ を設定します。

この例では一部の項目値に変数を使用しています。次のいずれかを実行できます。

  • コード内で変数を値に置き換える。

  • プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。

プロパティファイルの使用方法についての詳細は、​「プロパティプレースホルダーの設定」​を参照してください。

HTTP リスナー​を設定するには、次の手順に従います。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューで「​http​」を検索し、​[Listener]​ 操作を選択します。

  3. Listener​ 操作をキャンバスにドラッグします。

  4. [Listener]​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[Add (追加)]​ アイコンをクリックしてグローバル要素を追加します。

  5. [OK]​ をクリックして、デフォルトを受け入れます。

  6. [Path (パス)]​ 項目を ​/insert​ に設定します。

[Transform Message] コンポーネントを追加する

[Transform Message]​ コンポーネントは、キースペースのデータを Java に変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[HTTP Listener]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/java
    ---
    {
      "id": payload.id,
      "name": payload.name,
      "event": payload.event
    }

Insert Entity 操作を追加する

Insert Entity​ 操作は、キースペースのテーブルにエンティティを挿入します。

  1. Insert Entity​ 操作をキャンバスの ​[Transform Message]​ の横にドラッグします。

  2. [Insert Entity]​ の設定で、 ​[Connector configuration (コネクタ設定)]​ ドロップダウンをクリックし、 ​[Cassandra​DB_C​onfig]​ を選択します。

  3. [Insert Entity]​ プロパティウィンドウで、次の項目を設定します。

    項目

    Table (テーブル)

    example_table

    Keyspace name (キースペース名)

    example_keyspace

    Entity to insert (挿入するエンティティ)

    payload

2 つ目の [Transform Message] コンポーネントを追加する

2 つ目の ​[Transform Message]​ コンポーネントは、キースペースのデータを Java から XML に変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[Insert Entity]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/json
    ---
    payload

選択

この Mule フローは ​Select​ クエリを実行します。

Select 操作の Studio フロー

このフローでは、次を設定します。

  • HTTP Listener​ コンポーネント

  • Select​ 操作

  • [Transform Message]​ コンポーネント

HTTP リスナーを設定する

localhost​ のポート ​8081​ で ​/​ アカウントパスへのコールが行われたときに Mule フローを開始するように ​HTTP Listener​ を設定します。

この例では一部の項目値に変数を使用しています。次のいずれかを実行できます。

  • コード内で変数を値に置き換える。

  • プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。

プロパティファイルの使用方法についての詳細は、​「プロパティプレースホルダーの設定」​を参照してください。

HTTP リスナー​を設定するには、次の手順に従います。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューで「​http​」を検索し、​[Listener]​ 操作を選択します。

  3. Listener​ 操作をキャンバスにドラッグします。

  4. [Listener]​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[Add (追加)]​ アイコンをクリックしてグローバル要素を追加します。

  5. [OK]​ をクリックして、デフォルトを受け入れます。

  6. [Path (パス)]​ 項目を ​/insert​ に設定します。

Select 操作を追加する

Select​ 操作は、キースペースで ​Select​ クエリを実行します。

  1. Select​ 操作をキャンバスの ​[HTTP Listener]​ の横にドラッグします。

  2. [Select]​ の設定で、 ​[Connector configuration (コネクタ設定)]​ ドロップダウンをクリックし、 ​Cassandra​DB_C​onfig​ を選択します。

  3. [Select]​ プロパティウィンドウで、次の項目を設定します。

    項目

    Query

    SELECT id, name, event FROM example_keyspace.example_table

[Transform Message] コンポーネントを追加する

[Transform Message]​ コンポーネントは、キースペースのデータを変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[Select]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/json
    ---
    payload

更新

この Mule フローは、キースペースのテーブルのエンティティを更新します。

Update Entity 操作の Studio フロー

このフローでは、次を設定します。

  • HTTP Listener​ コンポーネント

  • [Transform Message]​ コンポーネント

  • Update Entity​ 操作

  • 2 つ目の ​[Transform Message]​ コンポーネント

HTTP リスナーを設定する

localhost​ のポート ​8081​ で ​/​ アカウントパスへのコールが行われたときに Mule フローを開始するように ​HTTP Listener​ を設定します。

この例では一部の項目値に変数を使用しています。次のいずれかを実行できます。

  • コード内で変数を値に置き換える。

  • プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。

プロパティファイルの使用方法についての詳細は、​「プロパティプレースホルダーの設定」​を参照してください。

HTTP リスナー​を設定するには、次の手順に従います。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューで「​http​」を検索し、​[Listener]​ 操作を選択します。

  3. Listener​ 操作をキャンバスにドラッグします。

  4. [Listener]​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[Add (追加)]​ アイコンをクリックしてグローバル要素を追加します。

  5. [OK]​ をクリックして、デフォルトを受け入れます。

  6. [Path (パス)]​ 項目を ​/update​ に設定します。

[Transform Message] コンポーネントを追加する

[Transform Message]​ コンポーネントは、キースペースのデータを Java に変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[HTTP Listener]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/java
    ---
    {
      "where":{
        id: payload.where
      },
      "columns":payload.columns
    }

Update Entity 操作を追加する

Update Entity​ 操作は、キースペースのテーブルのエンティティを更新します。

  1. Update Entity​ 操作をキャンバスの ​[Transform Message]​ の横にドラッグします。

  2. [Update Entity]​ の設定で、 ​[Connector configuration (コネクタ設定)]​ ドロップダウンをクリックし、 ​[Cassandra​DB_C​onfig]​ を選択します。

  3. [Update Entity]​ プロパティウィンドウで、次の項目を設定します。

    項目

    Table (テーブル)

    example_table

    Keyspace name (キースペース名)

    example_keyspace

    Entity to insert (挿入するエンティティ)

    payload

2 つ目の [Transform Message] コンポーネントを追加する

2 つ目の ​[Transform Message]​ コンポーネントは、キースペースのデータを Java から XML に変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[Update Entity]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/json
    ---
    payload

削除

この Mule フローは、キースペースのテーブルからエンティティを削除します。

Delete Rows 操作の Studio フロー

このフローでは、次を設定します。

  • HTTP Listener​ コンポーネント

  • [Transform Message]​ コンポーネント

  • Delete Rows​ 操作

  • 2 つ目の ​[Transform Message]​ コンポーネント

HTTP リスナーを設定する

localhost​ のポート ​8081​ で ​/​ アカウントパスへのコールが行われたときに Mule フローを開始するように ​HTTP Listener​ を設定します。

この例では一部の項目値に変数を使用しています。次のいずれかを実行できます。

  • コード内で変数を値に置き換える。

  • プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。

プロパティファイルの使用方法についての詳細は、​「プロパティプレースホルダーの設定」​を参照してください。

HTTP リスナー​を設定するには、次の手順に従います。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューで「​http​」を検索し、​[Listener]​ 操作を選択します。

  3. Listener​ 操作をキャンバスにドラッグします。

  4. [Listener]​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[Add (追加)]​ アイコンをクリックしてグローバル要素を追加します。

  5. [OK]​ をクリックして、デフォルトを受け入れます。

  6. [Path (パス)]​ 項目を ​/deleteRows​ に設定します。

[Transform Message] コンポーネントを追加する

[Transform Message]​ コンポーネントは、キースペースのデータを変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[HTTP Listener]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/java
    ---
    {
      "where": {
        id: payload.ids
      }
    }

Delete Rows 操作を追加する

Delete Rows​ 操作は、レコードを削除します。

  1. Delete Rows​ 操作をキャンバスの ​[Transform Message]​ の横にドラッグします。

  2. [Delete Rows]​ の設定で、 ​[Connector configuration (コネクタ設定)]​ ドロップダウンをクリックし、 ​[Cassandra​DB_C​onfig]​ を選択します。

  3. [Delete Rows]​ プロパティウィンドウで、次の項目を設定します。

    項目

    Table (テーブル)

    example_table

    Keyspace name (キースペース名)

    example_keyspace

    Entity to insert (挿入するエンティティ)

    payload

2 つ目の [Transform Message] コンポーネントを追加する

2 つ目の ​[Transform Message]​ コンポーネントは、キースペースのデータを Java から XML に変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[Delete Rows]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/json
    ---
    payload

列値の削除

この Mule フローは、キースペースのテーブルから列の値を削除します。

Delete Columns Value 操作の Studio フロー

このフローでは、次を設定します。

  • HTTP Listener​ コンポーネント

  • [Transform Message]​ コンポーネント

  • Delete Columns Value​ 操作を追加する

  • 2 つ目の ​[Transform Message]​ コンポーネント

HTTP リスナーを設定する

localhost​ のポート ​8081​ で ​/​ アカウントパスへのコールが行われたときに Mule フローを開始するように ​HTTP Listener​ を設定します。

この例では一部の項目値に変数を使用しています。次のいずれかを実行できます。

  • コード内で変数を値に置き換える。

  • プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。

プロパティファイルの使用方法についての詳細は、​「プロパティプレースホルダーの設定」​を参照してください。

HTTP リスナー​を設定するには、次の手順に従います。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューで「​http​」を検索し、​[Listener]​ 操作を選択します。

  3. Listener​ 操作をキャンバスにドラッグします。

  4. [Listener]​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[Add (追加)]​ アイコンをクリックしてグローバル要素を追加します。

  5. [OK]​ をクリックして、デフォルトを受け入れます。

  6. [Path (パス)]​ 項目を ​/deleteColumns​ に設定します。

[Transform Message] コンポーネントを追加する

[Transform Message]​ コンポーネントは、キースペースのデータを Java に変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[HTTP Listener]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/java
    ---
    {
      "columns": payload.columns,
      "where": {
        id:payload.where
      }
    }

Delete Columns Value 操作を追加する

Delete Columns Value​ 操作は、​Where 句​で指定されたオブジェクトから値を削除します。

  1. Delete Columns Value​ 操作をキャンバスの ​[Transform Message]​ の横にドラッグします。

  2. [Delete Columns Value]​ の設定で、 ​[Connector configuration (コネクタ設定)]​ ドロップダウンをクリックし、 ​[Cassandra​DB_C​onfig]​ を選択します。

  3. [Delete Columns Value]​ プロパティウィンドウで、次の項目を設定します。

    項目

    Table (テーブル)

    example_table

    Keyspace name (キースペース名)

    example_keyspace

    Entities (エンティティ)

    Edit inline

    #[payload.entities]

    Where clause (Where 句)

    payload

2 つ目の [Transform Message] コンポーネントを追加する

2 つ目の ​[Transform Message]​ コンポーネントは、キースペースのデータを Java から XML に変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[Delete Columns Value]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/json
    ---
    payload

列名の変更

この Mule フローは、指定されたキースペースのテーブルの列名を変更します。

Rename Column 操作の Studio フロー

このフローでは、次を設定します。

  • HTTP Listener​ コンポーネント

  • Rename Column​ 操作

  • [Transform Message]​ コンポーネント

HTTP リスナーを設定する

localhost​ のポート ​8081​ で ​/​ アカウントパスへのコールが行われたときに Mule フローを開始するように ​HTTP Listener​ を設定します。

この例では一部の項目値に変数を使用しています。次のいずれかを実行できます。

  • コード内で変数を値に置き換える。

  • プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。

プロパティファイルの使用方法についての詳細は、​「プロパティプレースホルダーの設定」​を参照してください。

HTTP リスナー​を設定するには、次の手順に従います。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューで「​http​」を検索し、​[Listener]​ 操作を選択します。

  3. Listener​ 操作をキャンバスにドラッグします。

  4. [Listener]​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[Add (追加)]​ アイコンをクリックしてグローバル要素を追加します。

  5. [OK]​ をクリックして、デフォルトを受け入れます。

  6. [Path (パス)]​ 項目を ​/renameColumn​ に設定します。

Rename Column 操作を追加する

Rename Column​ 操作は、キースペースのテーブルの列名を変更します。

  1. Rename Column​ 操作をキャンバスの ​[HTTP Listener]​ の横にドラッグします。

  2. [Rename Column]​ の設定で、 ​[Connector configuration (コネクタ設定)]​ ドロップダウンをクリックし、 ​[Cassandra​DB_C​onfig]​ を選択します。

  3. [Rename Column]​ プロパティウィンドウで、次の項目を設定します。

    項目

    Table (テーブル)

    #[payload.tableName]

    Keyspace name (キースペース名)

    #[payload.keyspaceName]

    Old column name (古い列名)

    payload.oldName

    New column name (新しい列名)

    #[payload.newName]

[Transform Message] コンポーネントを追加する

[Transform Message]​ コンポーネントは、キースペースのデータを変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[Rename Column]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/json
    ---
    payload

新しい列の追加

この Mule フローは、キースペースのテーブルに新しい列を追加します。

Add New Table Column 操作の Studio フロー

このフローでは、次を設定します。

  • HTTP Listener​ コンポーネント

  • Set Variable​ コンポーネント

  • 2 つ目の ​Set Variable​ コンポーネント

  • [Transform Message]​ コンポーネント

  • Add New Table Column​ 操作

  • 2 つ目の ​[Transform Message]​ コンポーネント

HTTP リスナーを設定する

localhost​ のポート ​8081​ で ​/​ アカウントパスへのコールが行われたときに Mule フローを開始するように ​HTTP Listener​ を設定します。

この例では一部の項目値に変数を使用しています。次のいずれかを実行できます。

  • コード内で変数を値に置き換える。

  • プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。

プロパティファイルの使用方法についての詳細は、​「プロパティプレースホルダーの設定」​を参照してください。

HTTP リスナー​を設定するには、次の手順に従います。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューで「​http​」を検索し、​[Listener]​ 操作を選択します。

  3. Listener​ 操作をキャンバスにドラッグします。

  4. [Listener]​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[Add (追加)]​ アイコンをクリックしてグローバル要素を追加します。

  5. [OK]​ をクリックして、デフォルトを受け入れます。

  6. [Path (パス)]​ 項目を ​/addNewColumn​ に設定します。

Set Variable コンポーネントを追加する

最初の ​Set Variable​ コンポーネントは、テーブル名の値を格納します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​set variable​」を検索します。

  2. [Set Variable]​ コンポーネントをキャンバスの ​[HTTP Listener]​ の横にドラッグします。

  3. [Set Variable]​ プロパティウィンドウで、次の項目を設定します。

    項目

    名前

    tableName

    #[payload.tableName]

2 つ目の Set Variable コンポーネントを追加する

2 つ目の ​Set Variable​ コンポーネントは、キースペース名の値を格納します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​set variable​」を検索します。

  2. [Set Variable]​ コンポーネントをキャンバスの ​[HTTP Listener]​ の横にドラッグします。

  3. [Set Variable]​ プロパティウィンドウで、次の項目を設定します。

    項目

    名前

    keyspaceName

    #[payload.keyspaceName]

[Transform Message] コンポーネントを追加する

[Transform Message]​ コンポーネントは、キースペースのデータを変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[Set Variable]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/java
    ---
    {
      "column": payload.column,
      "type": payload.'type'
    } as Object {
      class : "org.mule.modules.cassandradb.api.AlterColumnInput"
    }

Add New Table Column 操作を追加する

Add New Table Column​ 操作は、新しい列を追加します。

  1. Add New Table​ 操作をキャンバスの ​[Transform Message]​ の横にドラッグします。

  2. [Add New Table Column]​ の設定で、 ​[Connector configuration (コネクタ設定)]​ ドロップダウンをクリックし、 ​[Cassandra​DB_C​onfig]​ を選択します。

  3. [Add New Table Column]​ プロパティウィンドウで、次の項目を設定します。

    項目

    Table (テーブル)

    #[vars['tableName']]

    Keyspace name (キースペース名)

    #[vars['keyspaceName']]

    Alter column input (変更列の入力)

    payload

2 つ目の [Transform Message] コンポーネントを追加する

2 つ目の ​[Transform Message]​ コンポーネントは、キースペースのデータを Java から XML に変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[Add New Table Column]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/json
    ---
    payload

列の削除

この Mule フローは、キースペースのテーブルから列を削除します。

Drop Column 操作の Studio フロー

このフローでは、次を設定します。

  • HTTP Listener​ コンポーネント

  • Drop Column​ 操作

  • [Transform Message]​ コンポーネント

HTTP リスナーを設定する

localhost​ のポート ​8081​ で ​/​ アカウントパスへのコールが行われたときに Mule フローを開始するように ​HTTP Listener​ を設定します。

この例では一部の項目値に変数を使用しています。次のいずれかを実行できます。

  • コード内で変数を値に置き換える。

  • プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。

プロパティファイルの使用方法についての詳細は、​「プロパティプレースホルダーの設定」​を参照してください。

HTTP リスナー​を設定するには、次の手順に従います。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューで「​http​」を検索し、​[Listener]​ 操作を選択します。

  3. Listener​ 操作をキャンバスにドラッグします。

  4. [Listener]​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[Add (追加)]​ アイコンをクリックしてグローバル要素を追加します。

  5. [OK]​ をクリックして、デフォルトを受け入れます。

  6. [Path (パス)]​ 項目を ​/dropColumn​ に設定します。

Drop Column 操作を追加する

Drop Column​ 操作は、列を削除します。

  1. Drop Column​ 操作をキャンバスの ​[HTTP Listener]​ の横にドラッグします。

  2. [Drop Column]​ の設定で、 ​[Connector configuration (コネクタ設定)]​ ドロップダウンをクリックし、 ​[Cassandra​DB_C​onfig]​ を選択します。

  3. [Drop Column]​ プロパティウィンドウで、次の項目を設定します。

    項目

    Table (テーブル)

    #[payload.tableName]

    Keyspace name (キースペース名)

    #[payload.keyspaceName]

    Column name (列名)

    payload.columnName

[Transform Message] コンポーネントを追加する

[Transform Message]​ コンポーネントは、キースペースのデータを変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[Drop Column]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/json
    ---
    payload

Cassandra クエリ言語 (CQL) クエリの実行

この Mule フローは、指定された未加工の入力クエリを実行します。

Execute CQL Query 操作の Studio フロー

このフローでは、次を設定します。

  • HTTP Listener​ コンポーネント

  • [Transform Message]​ コンポーネント

  • Execute CQL Query​ 操作

  • 2 つ目の ​[Transform Message]​ コンポーネント

HTTP リスナーを設定する

localhost​ のポート ​8081​ で ​/​ アカウントパスへのコールが行われたときに Mule フローを開始するように ​HTTP Listener​ を設定します。

この例では一部の項目値に変数を使用しています。次のいずれかを実行できます。

  • コード内で変数を値に置き換える。

  • プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。

プロパティファイルの使用方法についての詳細は、​「プロパティプレースホルダーの設定」​を参照してください。

HTTP リスナー​を設定するには、次の手順に従います。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューで「​http​」を検索し、​[Listener]​ 操作を選択します。

  3. Listener​ 操作をキャンバスにドラッグします。

  4. [Listener]​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[Add (追加)]​ アイコンをクリックしてグローバル要素を追加します。

  5. [OK]​ をクリックして、デフォルトを受け入れます。

  6. [Path (パス)]​ 項目を ​/executeCqlQuery​ に設定します。

[Transform Message] コンポーネントを追加する

[Transform Message]​ コンポーネントは、キースペースのデータを Java に変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[HTTP Listener]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/java
    ---
    {
      "cqlQuery": payload.cqlQuery,
      "parameters": payload.parameters
    } as Object {
      class : "org.mule.modules.cassandradb.api.CQLQueryInput"
    }

Execute CQL Query 操作を追加する

Execute CQL Query​ 操作は、未加工の入力クエリを実行します。

  1. Execute CQL Query​ 操作をキャンバスの ​[Transform Message]​ の横にドラッグします。

  2. [Execute CQL Query]​ の設定で、 ​[Connector configuration (コネクタ設定)]​ ドロップダウンをクリックし、 ​[Cassandra​DB_C​onfig]​ を選択します。

2 つ目の [Transform Message] コンポーネントを追加する

2 つ目の ​[Transform Message]​ コンポーネントは、キースペースのデータを Java から XML に変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[Execute CQL Query]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/json
    ---
    payload

テーブルの削除

この Mule フローは、指定されたキースペースからテーブルを削除します。

Drop Table 操作の Studio フロー

このフローでは、次を設定します。

  • HTTP Listener​ コンポーネント

  • Drop Table​ 操作

  • [Transform Message]​ コンポーネント

HTTP リスナーを設定する

localhost​ のポート ​8081​ で ​/​ アカウントパスへのコールが行われたときに Mule フローを開始するように ​HTTP Listener​ を設定します。

この例では一部の項目値に変数を使用しています。次のいずれかを実行できます。

  • コード内で変数を値に置き換える。

  • プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。

プロパティファイルの使用方法についての詳細は、​「プロパティプレースホルダーの設定」​を参照してください。

HTTP リスナー​を設定するには、次の手順に従います。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューで「​http​」を検索し、​[Listener]​ 操作を選択します。

  3. Listener​ 操作をキャンバスにドラッグします。

  4. [Listener]​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[Add (追加)]​ アイコンをクリックしてグローバル要素を追加します。

  5. [OK]​ をクリックして、デフォルトを受け入れます。

  6. [Path (パス)]​ 項目を ​/dropTable​ に設定します。

Drop Table 操作を追加する

Drop Table​ 操作は、指定されたキースペースからテーブルを削除します。​Drop Table​ 操作でキースペースを指定しないと、接続パラメーターのキースペースでテーブルが作成されます。

  1. Drop Table​ 操作をキャンバスの ​[HTTP Listener]​ の横にドラッグします。

  2. [Drop Table]​ の設定で、 ​[Connector configuration (コネクタ設定)]​ ドロップダウンをクリックし、 ​[Cassandra​DB_C​onfig]​ を選択します。

  3. [Drop Table]​ プロパティウィンドウで、次の項目を設定します。

    項目

    Table name (テーブル名)

    payload.tableName

    Keyspace name (キースペース名)

    #[payload.keyspaceName]

[Transform Message] コンポーネントを追加する

[Transform Message]​ コンポーネントは、キースペースのデータを変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[Drop Table]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/json
    ---
    payload

キースペースの削除

この Mule フローは、指定されたキースペースとその値を削除します。

Drop Keyspace 操作の Studio フロー

このフローでは、次を設定します。

  • HTTP Listener​ コンポーネント

  • Drop Keyspace​ 操作

  • [Transform Message]​ コンポーネント

HTTP リスナーを設定する

localhost​ のポート ​8081​ で ​/​ アカウントパスへのコールが行われたときに Mule フローを開始するように ​HTTP Listener​ を設定します。

この例では一部の項目値に変数を使用しています。次のいずれかを実行できます。

  • コード内で変数を値に置き換える。

  • プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。

プロパティファイルの使用方法についての詳細は、​「プロパティプレースホルダーの設定」​を参照してください。

HTTP リスナー​を設定するには、次の手順に従います。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューで「​http​」を検索し、​[Listener]​ 操作を選択します。

  3. Listener​ 操作をキャンバスにドラッグします。

  4. [Listener]​ 設定で、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[Add (追加)]​ アイコンをクリックしてグローバル要素を追加します。

  5. [OK]​ をクリックして、デフォルトを受け入れます。

  6. [Path (パス)]​ 項目を ​/dropKeyspace​ に設定します。

Drop Keyspace 操作を追加する

Drop Keyspace​ 操作は、キースペースとその値を削除します。

  1. Drop Keyspace​ 操作をキャンバスの ​[HTTP Listener]​ の横にドラッグします。

  2. [Drop Keyspace]​ の設定で、 ​[Connector configuration (コネクタ設定)]​ ドロップダウンをクリックし、 ​[Cassandra​DB_C​onfig]​ を選択します。

  3. [Drop Keyspace]​ プロパティウィンドウで、次の項目を設定します。

    項目

    Keyspace name (キースペース名)

    payload.keyspaceName

[Transform Message] コンポーネントを追加する

[Transform Message]​ コンポーネントは、キースペースのデータを変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで、「​transform message​」を検索します。

  2. [Transform Message]​ コンポーネントをキャンバスの ​[Drop Keyspace]​ の横にドラッグします。

  3. Transform Message​ 設定で、​[Output (出力)]​ セクションの括弧を次の XML で上書きします。

    %dw 2.0
    output application/json
    ---
    payload

Apache Cassandra データベースのデータの操作例

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:cassandra-db="http://www.mulesoft.org/schema/mule/cassandra-db" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
      xmlns:http="http://www.mulesoft.org/schema/mule/http"
      xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/cassandra-db http://www.mulesoft.org/schema/mule/cassandra-db/current/mule-cassandra-db.xsd">

  <configuration-properties file="mule-app.properties" />
  <http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" doc:id="7b4310b7-4a49-4b37-8649-9247ae910399" >
    <http:listener-connection host="0.0.0.0" port="8081" />
  </http:listener-config>
  <cassandra-db:config name="CassandraDB_Config" doc:name="CassandraDB Config" doc:id="1ab180db-597d-455a-99fb-e006842cd052" >
    <cassandra-db:connection host="${config.host}" port="${config.port}" keyspace="${config.keyspace}" username="${config.username}" password="${config.password}" clusterName="${config.clusterName}" clusterNodes="${config.clusterNodes}"/>
  </cassandra-db:config>
  <flow name="GetTablesFromKeyspace" doc:id="e7d35ea3-58ed-4713-bbce-4ff6cbb41189" >
    <http:listener doc:name="Listener" doc:id="24838bde-79ae-4601-ac2b-00945831d7df" config-ref="HTTP_Listener_config" path="/getTablesFromKeyspace" />
    <cassandra-db:get-table-names-from-keyspace doc:name="Get table names from keyspace" doc:id="96e12e7b-8e90-4117-8ba6-5225d4af530a" config-ref="CassandraDB_Config" keyspaceName="#[payload.keyspaceName]"/>
    <ee:transform doc:name="Transform Message" doc:id="f3be8d87-27bd-470f-beb5-dbd2b81c24be" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
  <flow name="Insert" doc:id="ea181924-0b06-48ea-b007-c1b297db2cbd" >
    <http:listener doc:name="Listener" doc:id="5eceb9c9-bbad-4022-92a3-932e399bb4d6" config-ref="HTTP_Listener_config" path="/insert" />
    <ee:transform doc:name="Transform Message" doc:id="76763f2a-3860-4d73-84ad-33c0a7c485ed" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
{
  "id": payload.id,
  "name": payload.name,
  "event": payload.event
}]]></ee:set-payload>
      </ee:message>
    </ee:transform>
    <cassandra-db:insert table="example_table" doc:name="Insert" doc:id="13224cf4-25d8-4f35-84e7-d211d4a3bdc5" config-ref="CassandraDB_Config" keyspaceName="example_keyspace"/>
    <ee:transform doc:name="Transform Message" doc:id="8888f973-3c80-4f56-b83c-792b40ba8cc4" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
  <flow name="Select" doc:id="2b70dea4-aadf-44a2-8c08-fee5a06cf8f5" >
    <http:listener doc:name="Listener" doc:id="ce7fb340-0292-45b5-a62e-29069d4f03ee" config-ref="HTTP_Listener_config" path="/select" />
    <cassandra-db:select doc:name="Select" doc:id="6a698c61-30eb-49e4-839a-c6412644c41f" config-ref="CassandraDB_Config">
      <cassandra-db:query >SELECT id, name, event FROM example_keyspace.example_table</cassandra-db:query>
    </cassandra-db:select>
    <ee:transform doc:name="Transform Message" doc:id="2782805e-1cf0-4808-96f1-99bd145759d0" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
  <flow name="Update" doc:id="81fa1da3-8a3d-460d-80d7-2499faacf3c3" >
    <http:listener doc:name="Listener" doc:id="51053b82-fa99-456b-bde4-36c87af4b633" config-ref="HTTP_Listener_config" path="/update" />
    <ee:transform doc:name="Transform Message" doc:id="c38ebb52-d614-4780-bae9-95d710f539d3" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
{
  "where":{
    id: payload.where
  },
  "columns":payload.columns
}]]></ee:set-payload>
      </ee:message>
    </ee:transform>
    <cassandra-db:update table="example_table" doc:name="Update" doc:id="5edef28b-c636-4ce5-b59e-5843511c89c7" config-ref="CassandraDB_Config" keyspaceName="example_keyspace"/>
    <ee:transform doc:name="Transform Message" doc:id="beb77d6c-571b-4187-922e-afc7e89c8415" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
  <flow name="DeleteRows" doc:id="81fa1da3-8a3d-460d-80d7-2499faacf3c3" >
    <http:listener doc:name="Copy_of_Listener" doc:id="51053b82-fa99-456b-bde4-36c87af4b633" config-ref="HTTP_Listener_config" path="/deleteRows" />
    <ee:transform doc:name="Transform Message" doc:id="fdf8f121-8be3-4c73-8c5b-23df7c679c89" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
{
  "where": {
    id: payload.ids
  }
}]]></ee:set-payload>
      </ee:message>
    </ee:transform>
    <cassandra-db:delete-rows table="example_table" doc:name="Delete rows" doc:id="3f9532e2-2fc6-4381-a2f6-90172994b2a7" config-ref="CassandraDB_Config" keyspaceName="example_keyspace"/>
    <ee:transform doc:name="Transform Message" doc:id="99fc2458-7548-44e1-9e31-ae29e04cd3c0" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
  <flow name="DeleteColumns" doc:id="81fa1da3-8a3d-460d-80d7-2499faacf3c3" >
    <http:listener doc:name="Listener" doc:id="51053b82-fa99-456b-bde4-36c87af4b633" config-ref="HTTP_Listener_config" path="/deleteColumns" />
    <ee:transform doc:name="Transform Message" doc:id="0d8fb61b-4afc-490b-be8c-d7f008efa1cf" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
{
  "columns": payload.columns,
  "where": {
    id:payload.where
  }
}]]></ee:set-payload>
      </ee:message>
    </ee:transform>
    <cassandra-db:delete-columns-value table="example_table" doc:name="Delete columns value" doc:id="8ed01b4f-2cd4-4fcf-9d70-f560a6501f8e" config-ref="CassandraDB_Config" keyspaceName="example_keyspace">
      <cassandra-db:entities >
        <cassandra-db:entity value="#[payload.entities]" />
      </cassandra-db:entities>
    </cassandra-db:delete-columns-value>
    <ee:transform doc:name="Transform Message" doc:id="1f4f7f5d-7cfc-48fc-983c-a74a69576f8c" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
  <flow name="RenameColumn" doc:id="81fa1da3-8a3d-460d-80d7-2499faacf3c3" >
    <http:listener doc:name="Listener" doc:id="51053b82-fa99-456b-bde4-36c87af4b633" config-ref="HTTP_Listener_config" path="/renameColumn" />
    <cassandra-db:rename-column doc:name="Rename column" doc:id="f61c5f48-1f4f-46e6-9ab7-3021bb3eb4f5" config-ref="CassandraDB_Config" table="#[payload.tableName]" keyspaceName="#[payload.keyspaceName]" newColumnName="#[payload.newName]">
      <cassandra-db:old-column-name ><![CDATA[#[payload.oldName]]]></cassandra-db:old-column-name>
    </cassandra-db:rename-column>
    <ee:transform doc:name="Transform Message" doc:id="92b94afa-c0eb-4eb8-a05c-8d9ffcce000e" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
  <flow name="AddNewColumn" doc:id="81fa1da3-8a3d-460d-80d7-2499faacf3c3" >
    <http:listener doc:name="Listener" doc:id="51053b82-fa99-456b-bde4-36c87af4b633" config-ref="HTTP_Listener_config" path="/addNewColumn" />
    <set-variable value="#[payload.tableName]" doc:name="Set Variable" doc:id="40a2950e-58d2-4488-8b8d-6132ebcacfe8" variableName="tableName"/>
    <set-variable value="#[payload.keyspaceName]" doc:name="Set Variable" doc:id="29fe33b5-da79-4c42-97f1-a0f699cc532a" variableName="keyspaceName"/>
    <ee:transform doc:name="Transform Message" doc:id="af633bfc-5dbf-4849-a58a-2cb446d32920" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
{
  "column": payload.column,
  "type": payload.'type'
} as Object {
  class : "org.mule.modules.cassandradb.api.AlterColumnInput"
}]]></ee:set-payload>
      </ee:message>
    </ee:transform>
    <cassandra-db:add-new-column doc:name="Add new column" doc:id="1ece4157-c45b-4298-9726-dec11c87fbf0" config-ref="CassandraDB_Config" table="#[vars['tableName']]" keyspaceName="#[vars['keyspaceName']]"/>
    <ee:transform doc:name="Transform Message" doc:id="335c584c-a1ae-4b69-bc24-1a0b7d1fe940" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
  <flow name="DropColumn" doc:id="81fa1da3-8a3d-460d-80d7-2499faacf3c3" >
    <http:listener doc:name="Listener" doc:id="5b388d2a-886e-4d32-ba77-2ae3d388c766" config-ref="HTTP_Listener_config" path="/dropColumn"/>
    <cassandra-db:drop-column doc:name="Drop column" doc:id="cd602e74-3d04-4fa9-b96b-40351135268b" config-ref="CassandraDB_Config" table="#[payload.tableName]" keyspaceName="#[payload.keyspaceName]">
      <cassandra-db:column-name ><![CDATA[#[payload.columnName]]]></cassandra-db:column-name>
    </cassandra-db:drop-column>
    <ee:transform doc:name="Transform Message" doc:id="399e221f-9f0c-4767-828f-aa35575dce04" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
  <flow name="ExecuteCQLQuery" doc:id="81fa1da3-8a3d-460d-80d7-2499faacf3c3" >
    <http:listener doc:name="Listener" doc:id="51053b82-fa99-456b-bde4-36c87af4b633" config-ref="HTTP_Listener_config" path="/executeCqlQuery" />
    <ee:transform doc:name="Transform Message" doc:id="0eda8e3a-3f61-4461-b963-c0930eec9c1a" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/java
---
{
  "cqlQuery": payload.cqlQuery,
  "parameters": payload.parameters
} as Object {
  class : "org.mule.modules.cassandradb.api.CQLQueryInput"
}]]></ee:set-payload>
      </ee:message>
    </ee:transform>
    <cassandra-db:execute-cql-query doc:name="Execute cql query" doc:id="23531836-b75d-47a3-b88e-bfcca6e3c43d" config-ref="CassandraDB_Config"/>
    <ee:transform doc:name="Transform Message" doc:id="f6017333-6a54-4e7d-9a0a-37e75bb99e95" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
  <flow name="DropTable" doc:id="81fa1da3-8a3d-460d-80d7-2499faacf3c3" >
    <http:listener doc:name="Listener" doc:id="51053b82-fa99-456b-bde4-36c87af4b633" config-ref="HTTP_Listener_config" path="/dropTable" />
    <cassandra-db:drop-table doc:name="Drop table" doc:id="2b814d18-ea46-49ee-a7d5-f5663bdb64e7" config-ref="CassandraDB_Config" keyspaceName="#[payload.keyspaceName]">
      <cassandra-db:table-name ><![CDATA[#[payload.tableName]]]></cassandra-db:table-name>
    </cassandra-db:drop-table>
    <ee:transform doc:name="Transform Message" doc:id="ef72ee47-8ff0-40cc-8e94-2a33d867cde7" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
  <flow name="DropKeyspace" doc:id="81fa1da3-8a3d-460d-80d7-2499faacf3c3" >
    <http:listener doc:name="Listener" doc:id="51053b82-fa99-456b-bde4-36c87af4b633" config-ref="HTTP_Listener_config" path="/dropKeyspace" />
    <cassandra-db:drop-keyspace doc:name="Drop keyspace" doc:id="4dd3b152-bef6-474e-ac47-dfa476e8eafc" config-ref="CassandraDB_Config">
      <cassandra-db:keyspace-name ><![CDATA[#[payload.keyspaceName]]]></cassandra-db:keyspace-name>
    </cassandra-db:drop-keyspace>
    <ee:transform doc:name="Transform Message" doc:id="6b5c7894-5f53-41e5-9ae7-364fdbfc427b" >
      <ee:message >
        <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
      </ee:message>
    </ee:transform>
  </flow>
</mule>