{"id":24761774,"url":"https://github.com/cumulocity-iot/apama-streaming-analytics-connectivity-csvcodec","last_synced_at":"2026-03-03T09:31:08.292Z","repository":{"id":27160941,"uuid":"112732377","full_name":"Cumulocity-IoT/apama-streaming-analytics-connectivity-CSVCodec","owner":"Cumulocity-IoT","description":"A Java based connectivity codec for transforming CSV data","archived":false,"fork":false,"pushed_at":"2025-05-14T09:44:30.000Z","size":59,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-12-21T23:40:52.008Z","etag":null,"topics":["apama","connectivity","csv","iot-analytics"],"latest_commit_sha":null,"homepage":"http://www.apamacommunity.com/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cumulocity-IoT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-12-01T11:26:35.000Z","updated_at":"2025-05-14T09:44:33.000Z","dependencies_parsed_at":"2024-04-08T02:01:29.020Z","dependency_job_id":"850a6cbb-a40b-4287-a6af-814c53b83c35","html_url":"https://github.com/Cumulocity-IoT/apama-streaming-analytics-connectivity-CSVCodec","commit_stats":null,"previous_names":["cumulocity-iot/apama-streaming-analytics-connectivity-csvcodec","softwareag/apama-streaming-analytics-connectivity-csvcodec"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Cumulocity-IoT/apama-streaming-analytics-connectivity-CSVCodec","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cumulocity-IoT%2Fapama-streaming-analytics-connectivity-CSVCodec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cumulocity-IoT%2Fapama-streaming-analytics-connectivity-CSVCodec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cumulocity-IoT%2Fapama-streaming-analytics-connectivity-CSVCodec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cumulocity-IoT%2Fapama-streaming-analytics-connectivity-CSVCodec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cumulocity-IoT","download_url":"https://codeload.github.com/Cumulocity-IoT/apama-streaming-analytics-connectivity-CSVCodec/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cumulocity-IoT%2Fapama-streaming-analytics-connectivity-CSVCodec/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30039884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T06:58:30.252Z","status":"ssl_error","status_checked_at":"2026-03-03T06:58:15.329Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apama","connectivity","csv","iot-analytics"],"created_at":"2025-01-28T19:19:29.750Z","updated_at":"2026-03-03T09:31:08.245Z","avatar_url":"https://github.com/Cumulocity-IoT.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# apama-streaming-analytics-connectivity-CSVCodec\nJava based Connectivity Codec for converting to/from CSV for use with [Apama](https://www.cumulocity.com/product/apama-community-edition/).\n\n## Description\nConverts the given event map data to the CSV format (and vice versa). For more information on the Apama Connectivity Framework, as well as Apama in general, please see [the community website](https://www.cumulocity.com/product/apama-community-edition/). Furthermore, if you wish to examine this plugin in more detail, a blog describing it also exists called \"creating-your-own-apama-connectivity-plugins\".\n\n## Set-up\nFirst, ensure you have an install of the Apama engine; a free edition is available at [the community website](https://www.cumulocity.com/product/apama-community-edition/). This plugin assumes the user has familiarity with the basic structure of the install, more information of which can also be found on the community site.\n\nBuilding and running this sample requires access to the Correlator and Apama command line tools.\n\nTo ensure that the environment is configured correctly for Apama, all the commands below should be executed from a shell where the `bin/apama_env` script has been sourced.\n\n### To build\nThe CSV codec is most easily built with the Apache ANT tool from the directory containing 'build.xml':\n\n\t\u003e ant\n\nBut if you do not have access to ANT, it will need to be built manually:\n\n\t\u003e mkdir build_output\n\t\u003e javac -cp $APAMA_HOME/lib/connectivity-plugins-api.jar -d build_output src/com/apama/samples/*.java\n\t\u003e jar -cf build_output/csv-codec-sample.jar -C build_output .\n\t\u003e cp build_output/csv-codec.jar $APAMA_WORK/lib/\n\nA successful build will produce output files for the CSV codec:\n\n\tbuild-output/csv-codec-sample.jar\n\nThese should have already been copied to APAMA_WORK/lib where the correlator will load them from.\n\nTo run the sample, you will also need to have built the [File Transport](https://github.com/Cumulocity-IoT/apama-streaming-analytics-connectivity-FileTransport) to create a full connectivity chain.\n\n## Running the sample\nYou can either run the sample via the [Pysys](https://pysys-test.github.io/pysys-test/) framework by invoking the tests, or by passing the yaml Connectivity configuration file to the Correlator.\n\nWhen run, the sample creates a connectivity plugin chain. The chain will have the correlator at one end and to access the 'ouside world', a plugin chain must end with a Transport. For this sample we use the File Transport which can read in data from a file to be passed towards the host correlator, or write data out to a file that has come from the host correlator. Between the File Transport and the correlator is the CSV Plugin which will convert CSV data from the file to events to be processed, or vice-versa.\n\nTo run via [Pysys](https://pysys-test.github.io/pysys-test/), go to the tests directory and invoke the command: \n  \n\tpysys run\n\nYou can then inspect the output within the individual tests output directory\n\nShould you wish to run directly\n\n1. Use example files found in the test directory CSV:\n\n\u003e cd CSV/tests/system/CSVCodec_sys_001/Input\n\n2. Start the Apama Correlator specifying the connectivity config file:\n\n\u003e correlator --connectivityConfig connectivity.yaml\n\n3. Inject the Connectivity plugins support EPL:\n\n\u003e engine_inject $APAMA_HOME/monitors/ConnectivityPluginsControl.mon $APAMA_HOME/monitors/ConnectivityPlugins.mon\n\n4. Inject the Test monitor:\n\n\u003e engine_inject Test.mon\n\n### Sample Output\nThe EPL application is sending out events to the connectivity chain, which the correlator presents as maps to the chain. The CSV codec sees these maps and renders them as CSV documents into a string payload of the message before passing it on to the transport.\n\nRunning the sample will produce the output files:\n\n\treceived.evt\n\toutput.txt\n\nreceived.evt contains the events received by the correlator that have been processed by the plugin chain. output.txt is the file written by transport in CSV format of events sent from the correlator. You'll note the original input file (input.txt) had a mix of different delimiters and additional whitespace; the codec wrote out a more conventional CSV file using only commas.\n \n## License\nCopyright (c) 2024 Cumulocity GmbH. The name Cumulocity GmbH and all Cumulocity GmbH product names are either trademarks or registered trademarks of Cumulocity GmbH and/or its subsidiaries and/or its affiliates and/or their licensors. Other company and product names mentioned herein may be trademarks of their respective owners. \n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\nfile except in compliance with the License. You may obtain a copy of the License at\nhttp://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software distributed under the\nLicense is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\neither express or implied. \nSee the License for the specific language governing permissions and limitations under the License.\n\n______________________\nThese tools are provided as-is and without warranty or support. They do not constitute part of the product suite. Users are free to use, fork and modify them, subject to the license agreement. While we welcome contributions, we cannot guarantee to include every contribution in the main project.\n_____________\nAsk the community at https://techcommunity.cumulocity.com/tag/streaming-analytics-apama if you have any questions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcumulocity-iot%2Fapama-streaming-analytics-connectivity-csvcodec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcumulocity-iot%2Fapama-streaming-analytics-connectivity-csvcodec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcumulocity-iot%2Fapama-streaming-analytics-connectivity-csvcodec/lists"}