From 3b1c0e786edaedd565bf0e8e6a24b3e51af2ff3f Mon Sep 17 00:00:00 2001 From: Mohan Date: Thu, 11 Jul 2019 17:59:53 +0530 Subject: [PATCH 1/3] Add new Siddhi site theme to PySiddhi --- README.md | 19 +- docs/assets/javascripts/extra.js | 101 +++++++ docs/assets/stylesheets/extra.css | 443 ++++++++++++++++++++++++++++++ docs/images/favicon.ico | Bin 1150 -> 32988 bytes docs/images/siddhi-logo-w.png | Bin 6944 -> 0 bytes docs/images/siddhi-logo-w.svg | 163 ----------- docs/images/siddhi-logo.png | Bin 26393 -> 0 bytes docs/images/siddhi-logo.svg | 65 +++-- docs/index.md | 28 +- docs/license.md | 2 +- docs/stylesheets/extra.css | 53 ---- mkdocs.yml | 55 ++-- 12 files changed, 648 insertions(+), 281 deletions(-) create mode 100644 docs/assets/javascripts/extra.js create mode 100644 docs/assets/stylesheets/extra.css delete mode 100644 docs/images/siddhi-logo-w.png delete mode 100644 docs/images/siddhi-logo-w.svg delete mode 100644 docs/images/siddhi-logo.png delete mode 100644 docs/stylesheets/extra.css diff --git a/README.md b/README.md index a22c076..cffda16 100644 --- a/README.md +++ b/README.md @@ -25,15 +25,10 @@ Contributed by: __Madhawa Vidanapathirana__ Email: madhawavidanapathirana@gmail.com Organization: University of Moratuwa, Sri Lanka. -## How to Contribute -* Report issues at GitHub Issue Tracker. -* Feel free to try out the PySiddhi source code and send your contributions as pull requests to the master branch. - -## Contact us - * Post your questions with the "Siddhi" tag in Stackoverflow. - * For more details and support contact us via http://wso2.com/support/ - -## Support -* We are committed to ensuring support for [Siddhi](https://siddhi-io.github.io/siddhi/) (with its extensions) and WSO2 Stream Processor from development to production. -* Our unique approach ensures that all support leverages our open development methodology and is provided by the very same engineers who build the technology. -* For more details and to take advantage of this unique opportunity, contact us via http://wso2.com/support/. +## Support and Contribution + +* We encourage users to ask questions and get support via StackOverflow, make sure to add the `siddhi` tag to the issue for better response. + +* If you find any issues related to the extension please report them on the issue tracker. + +* For production support and other contribution related information refer Siddhi Community documentation. diff --git a/docs/assets/javascripts/extra.js b/docs/assets/javascripts/extra.js new file mode 100644 index 0000000..38b83bd --- /dev/null +++ b/docs/assets/javascripts/extra.js @@ -0,0 +1,101 @@ +/* +~ Copyright (c) WSO2 Inc. (http://wso2.com) All Rights Reserved. +~ +~ Licensed under the Apache License, Version 2.0 (the "License"); +~ you may not use this file except in compliance with the License. +~ You may obtain a copy of the License at +~ +~ http://www.apache.org/licenses/LICENSE-2.0 +~ +~ Unless required by applicable law or agreed to in writing, software +~ distributed under the License is distributed on an "AS IS" BASIS, +~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +~ See the License for the specific language governing permissions and +~ limitations under the License. +*/ + +var logo = document.querySelector('.md-logo'); +var logoTitle = logo.title; +logo.setAttribute('href', 'https://siddhi.io/') + +var header = document.querySelector('.md-header-nav__title'); +var headerContent = document.querySelectorAll('.md-header-nav__title span')[1].textContent; +var url = document.querySelector('.md-nav__item a.md-nav__link').href +header.innerHTML = '' + logoTitle + '' + + '' + headerContent + '' + + +/* + * TOC position highlight on scroll + */ + +var observeeList = document.querySelectorAll(".md-sidebar__inner > .md-nav--secondary .md-nav__link"); +var listElems = document.querySelectorAll(".md-sidebar__inner > .md-nav--secondary > ul li"); +var config = {attributes: true, childList: true, subtree: true}; + +var callback = function (mutationsList, observer) { + for (var mutation of mutationsList) { + if (mutation.type == 'attributes') { + mutation.target.parentNode.setAttribute(mutation.attributeName, + mutation.target.getAttribute(mutation.attributeName)); + scrollerPosition(mutation); + } + } +}; +var observer = new MutationObserver(callback); + +listElems[0].classList.add('active'); + +for (var i = 0; i < observeeList.length; i++) { + var el = observeeList[i]; + + observer.observe(el, config); + + el.onclick = function (e) { + listElems.forEach(function (elm) { + if (elm.classList) { + elm.classList.remove('active'); + } + }); + + e.target.parentNode.classList.add('active'); + } +} + +function scrollerPosition(mutation) { + var blurList = document.querySelectorAll(".md-sidebar__inner > .md-nav--secondary > ul li > .md-nav__link[data-md-state='blur']"); + + listElems.forEach(function (el) { + if (el.classList) { + el.classList.remove('active'); + } + }); + + if (blurList.length > 0) { + if (mutation.target.getAttribute('data-md-state') === 'blur') { + if (mutation.target.parentNode.querySelector('ul li')) { + mutation.target.parentNode.querySelector('ul li').classList.add('active'); + } else { + setActive(mutation.target.parentNode); + } + } else { + mutation.target.parentNode.classList.add('active'); + } + } else { + if (listElems.length > 0) { + listElems[0].classList.add('active'); + } + } +} + +function setActive(parentNode, i) { + i = i || 0; + if (i === 5) { + return; + } + if (parentNode.nextElementSibling) { + parentNode.nextElementSibling.classList.add('active'); + return; + } + setActive(parentNode.parentNode.parentNode.parentNode, ++i); +} diff --git a/docs/assets/stylesheets/extra.css b/docs/assets/stylesheets/extra.css new file mode 100644 index 0000000..da56fd7 --- /dev/null +++ b/docs/assets/stylesheets/extra.css @@ -0,0 +1,443 @@ +/* + * Copyright (c) 2019, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + + +.md-header-nav__button.md-logo img { + width: 80px; + height: 20px; +} + +.extension-title-low { + font-weight: 100; + padding-left: 15px; +} + +.extension-title { + font-weight: 700; + margin-right: 5px; +} + +.extension-title:hover { + opacity: .7; +} + +.md-header-nav__title { + padding: 1px 0; +} + +.md-main > .md-main__inner > .md-content { + -webkit-transition: margin 0.2s linear; + -khtml-transition: margin 0.2s linear; + -moz-transition: margin 0.2s linear; + -ms-transition: margin 0.2s linear; + transition: margin 0.2s linear; +} + +.md-main .md-sidebar.md-sidebar--secondary { + -webkit-transition: width 0.2s linear; + -khtml-transition: width 0.2s linear; + -moz-transition: width 0.2s linear; + -ms-transition: width 0.2s linear; + transition: width 0.2s linear; + padding-bottom: 80px; +} + +.md-main.hide-toc .md-content { + margin-right: 0; +} + +.md-main.hide-toc .md-sidebar.md-sidebar--secondary { + width: 0; +} + +.md-header { + height: 2.6rem; +} + +.md-header-nav__topic { + top: 0; + margin-top: .2rem; + font-weight: bold; + color: darkslategray; +} + +/*White header*/ +[data-md-color-primary=teal] .md-header { + background-color: #ffffff; + color: #212121; + border-top: 4px solid #009688; + box-shadow: 0 0 0.2rem #009688, 0 0.2rem 0.4rem rgba(0,0,0,.2); +} + +@media only screen and (min-width: 76.25em) { + .md-source { + padding-right: 0; + text-align: right; + opacity: 0.7; + } +} + +html .md-typeset .superfences-tabs > label:hover { + color: #009688; +} + +.md-search__input { + background-color: #dedede; +} + +.md-search__input::placeholder { + color: #404040; +} + +.md-nav-link-wrapper { + display: block; + margin-top: .625em; + transition: color .125s; + text-overflow: ellipsis; + cursor: pointer; + overflow: hidden +} + +.md-nav__item--nested > .md-nav-link-wrapper > .md-nav__link { + display: inline; +} + +.md-nav__item--nested > .md-nav-link-wrapper > .md-nav__link:after { + content: "\E313"; + display: inline-block; + vertical-align: middle; +} + +.md-nav__item--nested .md-nav__toggle:checked ~ .md-nav-link-wrapper > .md-nav__link:after { + -webkit-transform: rotateX(180deg); + transform: rotateX(180deg) +} + +[data-md-color-primary=deep-orange] .md-nav-link-wrapper a:focus, +[data-md-color-primary=deep-orange] .md-nav-link-wrapper a:hover { + color: #009688; +} + +.hljs-title, +.hljs-section { + color: #009688; + font-weight: normal; +} + +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #009688; +} + +.home_icon { + height: 45px; + margin-right: -12px; + vertical-align: middle; +} + +.home_icon a { + margin-top: 4px; +} + +.home_icon a i { + font-size: 25px; +} + +.md-nav__link[data-md-state=blur] { + color: rgba(0, 0, 0, .54); +} + +.quick_links { + float: right; +} + +.nav_link { + color: #fff; + font-size: 22px; + -webkit-transition: right 0.2s linear; + -khtml-transition: right 0.2s linear; + -moz-transition: right 0.2s linear; + -ms-transition: right 0.2s linear; + transition: right 0.2s linear, color .25s, opacity .1s; + z-index: 2; + padding-left: 20px; + opacity: 0; + display: none; +} + +.nav_link.active:hover { + opacity: 1; +} + +.edit_link.active { + display: block; + opacity: 0.7; + margin-top: 18px; +} + +.md-header-nav { + padding-right: 0; +} + +@media only screen and (min-width: 76.25em) { + .md-search__inner { + margin-right: 0; + } +} + +@media only screen and (min-width: 60em) { + .md-search { + padding-right: 0; + } +} + +@media only screen and (max-width: 76.1875em) { + html .md-nav--primary .md-nav__title--site .md-nav__button { + font-size: 1.9rem; + padding: 0 0 0 .4rem; + height: 2.2rem; + } + + .extension-title { + display: none; + } + + html [data-md-color-primary=teal] .md-nav--primary .md-nav__title--site { + background-color: #fff; + border-top: 3px solid #009688; + box-shadow: 0 0 0.2rem rgba(0, 0, 0, .1), 0 0.2rem 0.4rem rgba(0, 0, 0, .2); + color: black; + } + + .md-header-nav__source { + display: block; + } + + .md-source__icon + .md-source__repository { + display: none; + } + +} + +.feedbackBtn { + transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms; + background: rgb(38, 50, 56);; + color: #fff; + font-size: .7rem; + position: fixed; + right: 0; + top: 50%; + border-radius: 6px 0px 0px 6px; + writing-mode: vertical-lr; + padding: 15px 2px; + line-height: 30px; + box-shadow: 0 1px 0 rgba(153, 153, 153, 0.25) inset, 0 -1px 0 rgba(0, 0, 0, 0.25) inset; +} + +.feedbackBtn:hover { + background-color: #3c464c; +} + +.md-footer-nav { + background-color: rgba(0, 0, 0, 0.67); +} + +.md-footer-nav__link { + padding-top: .4rem; + padding-bottom: 0; +} + +.md-footer-nav__inner { + height: 3rem; + overflow: hidden; +} + +.md-footer-nav__direction { + font-size: .5rem; + top: 3px; +} + +.md-footer-nav__title { + font-size: .7rem; +} + +.md-footer-nav .md-flex__cell { + vertical-align: baseline; +} + +.md-footer-copyright__highlight { + padding-right: 10px; + border-right: 1px solid #575757; + margin-right: 10px; + display: inline-block; +} + +.text--replace { + overflow: hidden; + color: transparent; + text-indent: 100%; + white-space: nowrap +} + +.cd-top { + position: fixed; + bottom: 20px; + right: 20px; + display: inline-block; + height: 40px; + width: 40px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.05); + background: url(../lib/backtotop/img/cd-top-arrow.svg) no-repeat center 50%; + background-color: hsla(174, 100%, 29%, 0.8); +} + +.js .cd-top { + visibility: hidden; + opacity: 0; + transition: opacity .3s, visibility .3s, background-color .3s +} + +.js .cd-top--is-visible { + visibility: visible; + opacity: 1 +} + +.js .cd-top--fade-out { + opacity: .5 +} + +.js .cd-top:hover { + background-color: hsl(174, 100%, 29%); + opacity: 1 +} + +.md-nav__source { + display: none; +} + +@media only screen and (max-width: 1220px) { + .nav_link { + display: none; + } +} + +.md-nav--secondary ul > li.md-nav__item { + border-left: 4px solid transparent; + transition: border 500ms; + margin-left: -3px; +} + +.md-sidebar--secondary .md-nav--secondary > ul { + border-left: 2px solid #ccc; + margin-left: 3px; +} + +.md-nav--secondary > ul li.md-nav__item.active { + border-color: #242424 !important; +} + +.md-sidebar--secondary .md-nav--secondary > ul ul { + margin-left: -15px; +} + +.md-sidebar--secondary .md-nav--secondary > ul ul > li { + padding-left: 30px; +} + +.md-sidebar--secondary .md-nav--secondary > ul ul ul { + margin-left: -31px; +} + +.md-sidebar--secondary .md-nav--secondary > ul ul ul > li { + padding-left: 45px; +} + +.md-sidebar--secondary .md-nav--secondary > ul ul ul ul { + margin-left: -46px; +} + +.md-sidebar--secondary .md-nav--secondary > ul ul ul ul > li { + padding-left: 60px; +} + +.md-sidebar--secondary .md-nav--secondary > ul ul ul ul ul { + margin-left: -61px; +} + +.md-sidebar--secondary .md-nav--secondary > ul ul ul ul ul > li { + padding-left: 75px; +} + +.md-sidebar { + position: fixed; +} + +.md-sidebar[data-md-state=lock] { + top: 3.9rem; +} + +@media screen and (min-width: 1220px) and (max-width: 1599px) { + .nav_link { + top: 62px; + } +} + +.md-content__icon, +.md-footer-nav__button, +.md-header-nav__button, +.md-nav__button, +.md-nav__title::before, +.md-search-result__article--document::before { + margin: 0.3rem; +} + +.md-source__icon { + float: right; + text-align: right; + width: 1.8rem; +} + +@media (min-width: 60em) { + .md-header-nav__source { + padding-right: 0; + } +} + +.md-source { + opacity: 0.7; +} + +.md-source:hover { + opacity: 1; +} + +@media only screen and (min-width: 45em) { + .md-footer-social { + padding: 2px 0; + } +} + +.md-nav__button img { + width: 150%; +} diff --git a/docs/images/favicon.ico b/docs/images/favicon.ico index cd3f393dde6c88aab217a89da12fcaab5882955e..7fedf2b396d52312c2b4df77bd93856dc28abb1a 100644 GIT binary patch literal 32988 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 DW=ssN literal 1150 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 - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/images/siddhi-logo.png b/docs/images/siddhi-logo.png deleted file mode 100644 index 12a6c45f5c91c669613a813c6721f770979dca65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26393 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�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 - - \ No newline at end of file + + + diff --git a/docs/index.md b/docs/index.md index 843c4e8..bcc4f73 100644 --- a/docs/index.md +++ b/docs/index.md @@ -18,6 +18,14 @@ described via a ***Streaming SQL language***, and triggers actions. It performs * [Demo Managing Siddhi Apps on WSO2 SP](Quick-Demo-(SP4).md) * [APIs to Manage Siddhi App](Siddhi-App-Management-of-WSO2-SP-4.md) * [APIs to Simulate Events](Event-Simulator-of-SP-4.md) + +## Features + +- [x] Basic functionality of Siddhi 5.x.x +- [x] Siddhi Debugger +- [x] Support to Siddhi Extensions Loading +- [x] Rest Client on WSO2 SP 4.x.x - Siddhi App Management +- [x] Rest Client on WSO2 SP 4.x.x - Event Simulation ## Installation @@ -100,15 +108,11 @@ Contributed by: __Madhawa Vidanapathirana__
Email: madhawavidanapathirana@gmail.com
Organization: University of Moratuwa, Sri Lanka. -## How to Contribute -* Report issues at
GitHub Issue Tracker. -* Feel free to try out the PySiddhi source code and send your contributions as pull requests to the master branch. - -## Contact us - * Post your questions with the "Siddhi" tag in Stackoverflow. - * For more details and support contact us via http://wso2.com/support/ - -## Support -* We are committed to ensuring support for [Siddhi](https://siddhi-io.github.io/siddhi/) (with its extensions) and WSO2 Stream Processor from development to production. -* Our unique approach ensures that all support leverages our open development methodology and is provided by the very same engineers who build the technology. -* For more details and to take advantage of this unique opportunity, contact us via http://wso2.com/support/. +## Support and Contribution + +* We encourage users to ask questions and get support via StackOverflow, make sure to add the `siddhi` tag to the issue for better response. + +* If you find any issues related to the extension please report them on the issue tracker. + +* For production support and other contribution related information refer Siddhi Community documentation. + diff --git a/docs/license.md b/docs/license.md index 138c494..55b774b 100644 --- a/docs/license.md +++ b/docs/license.md @@ -1,4 +1,4 @@ -Copyright (c) 2018 WSO2 Inc. () All Rights Reserved. +Copyright (c) 2019 WSO2 Inc. () All Rights Reserved. WSO2 Inc. licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css deleted file mode 100644 index 12bda48..0000000 --- a/docs/stylesheets/extra.css +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2018, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. - * - * WSO2 Inc. licenses this file to you under the Apache License, - * Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -.md-header-nav__button.md-logo img { - width: 140px; - height: 33px; - margin-right: 0; -} - -.md-content__icon, -.md-footer-nav__button, -.md-header-nav__button, -.md-nav__button, -.md-nav__title::before, -.md-search-result__article--document::before { - margin: 0.3rem; - padding: 0; -} - -.extention-title { - font-weight: 700; - margin-right: 50px; -} - -.md-header-nav__title { - padding-left: 5px; -} - -@media (max-width: 1219px) { - - .extention-title { - display: none; - } - - html .md-nav--primary .md-nav__title--site .md-nav__button { - width: 13.4rem; - } -} \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index aa29fce..8c63caf 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,31 +1,44 @@ site_name: PySiddhi site_description: Python Stream Processing and Complex Event Processing Engine -site_author: WSO2 -site_url: https://siddhi-io.github.io/PySiddhi/ -extra_css: -- stylesheets/extra.css repo_name: PySiddhi -repo_url: https://github.com/siddhi-io/PySiddhi -copyright: Copyright © 2011 - 2018 WSO2 +repo_url: https://github.com/siddhi-io/PySiddhi/ +edit_uri: https://github.com/siddhi-io/PySiddhi/blob/master/ +copyright: Siddhi - Documentation theme: - logo: images/siddhi-logo-w.svg + name: material + logo: images/siddhi-logo.svg + favicon: images/favicon.ico palette: primary: teal accent: teal - favicon: images/favicon.ico - name: 'material' +extra_css: + - assets/stylesheets/extra.css +extra_javascript: + - assets/javascripts/extra.js +extra: + social: + - type: github + link: https://github.com/siddhi-io/siddhi + - type: medium + link: https://medium.com/siddhi-io + - type: twitter + link: https://twitter.com/siddhi_io + - type: linkedin + link: https://www.linkedin.com/groups/13553064 +google_analytics: + - UA-103065-28 + - auto markdown_extensions: -- admonition -- toc(permalink=true) -- codehilite(guess_lang=false) + - markdown.extensions.admonition pages: - - Welcome to PySiddhi: index.md - - License: license.md + - Information: index.md - Installation Guide: Installation-Guide.md - - Run PySiddhi: Run-PySiddhi.md - - Debug PySiddhi: Debugging-Siddhi-Queries.md - - Advanced Concepts of PySiddhi: Using-Siddhi-from-Python.md - - PySiddhi Client for WSO2 Stream Processor: - - Run PySiddhi Client: Quick-Demo-(SP4).md - - Client APIs to Manage Siddhi App: Siddhi-App-Management-of-WSO2-SP-4.md - - Client APIs to Simulate Events: Event-Simulator-of-SP-4.md + - Run PySiddhi: Run-PySiddhi.md + - Debug PySiddhi: Debugging-Siddhi-Queries.md + - Advanced Concepts of PySiddhi: Using-Siddhi-from-Python.md + - PySiddhi Client for WSO2 Stream Processor: + - Run PySiddhi Client: Quick-Demo-(SP4).md + - Client APIs to Manage Siddhi App: Siddhi-App-Management-of-WSO2-SP-4.md + - Client APIs to Simulate Events: Event-Simulator-of-SP-4.md + - License: license.md + From 30f2793eb204d469918f283e41834fed90ff51d2 Mon Sep 17 00:00:00 2001 From: Mohan Date: Thu, 11 Jul 2019 18:08:54 +0530 Subject: [PATCH 2/3] Fix the typo in mkdocs-yaml configuration --- mkdocs.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 8c63caf..fe04352 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -33,12 +33,12 @@ markdown_extensions: pages: - Information: index.md - Installation Guide: Installation-Guide.md - - Run PySiddhi: Run-PySiddhi.md - - Debug PySiddhi: Debugging-Siddhi-Queries.md - - Advanced Concepts of PySiddhi: Using-Siddhi-from-Python.md - - PySiddhi Client for WSO2 Stream Processor: - - Run PySiddhi Client: Quick-Demo-(SP4).md - - Client APIs to Manage Siddhi App: Siddhi-App-Management-of-WSO2-SP-4.md - - Client APIs to Simulate Events: Event-Simulator-of-SP-4.md + - Run PySiddhi: Run-PySiddhi.md + - Debug PySiddhi: Debugging-Siddhi-Queries.md + - Advanced Concepts of PySiddhi: Using-Siddhi-from-Python.md + - PySiddhi Client for WSO2 Stream Processor: + - Run PySiddhi Client: Quick-Demo-(SP4).md + - Client APIs to Manage Siddhi App: Siddhi-App-Management-of-WSO2-SP-4.md + - Client APIs to Simulate Events: Event-Simulator-of-SP-4.md - License: license.md From b34879db96bd62f717c8d9b89bc02bf2df7a7b41 Mon Sep 17 00:00:00 2001 From: Mohan Date: Thu, 11 Jul 2019 18:18:50 +0530 Subject: [PATCH 3/3] Update readme and refactor related content --- README.md | 3 - docs/Event-Simulator-of-SP-4.md | 70 ---------------- docs/Quick-Demo-(SP4).md | 35 -------- docs/Siddhi-App-Management-of-WSO2-SP-4.md | 93 ---------------------- docs/index.md | 7 -- mkdocs.yml | 6 +- 6 files changed, 1 insertion(+), 213 deletions(-) delete mode 100644 docs/Event-Simulator-of-SP-4.md delete mode 100644 docs/Quick-Demo-(SP4).md delete mode 100644 docs/Siddhi-App-Management-of-WSO2-SP-4.md diff --git a/README.md b/README.md index cffda16..a97f9d3 100644 --- a/README.md +++ b/README.md @@ -5,15 +5,12 @@ described via a ***Streaming SQL language***, and triggers actions. It performs ***Complex Event Processing*** on streaming data. Its Siddhi core is written in Java library. - PySiddhi wraps [Siddhi 5](https://siddhi-io.github.io/siddhi/) -- PySiddhi includes a REST Client for [WSO2 Stream Processor(SP) 4.x.x](https://wso2.com/analytics). ## Features - [x] Basic functionality of Siddhi 5.x.x - [x] Siddhi Debugger - [x] Support to Siddhi Extensions Loading -- [x] Rest Client on WSO2 SP 4.x.x - Siddhi App Management -- [x] Rest Client on WSO2 SP 4.x.x - Event Simulation For a Quick Demo and documentation refer [PySiddhi Site](https://siddhi-io.github.io/PySiddhi/) diff --git a/docs/Event-Simulator-of-SP-4.md b/docs/Event-Simulator-of-SP-4.md deleted file mode 100644 index 42505b2..0000000 --- a/docs/Event-Simulator-of-SP-4.md +++ /dev/null @@ -1,70 +0,0 @@ -# Event Simulation using PySiddhi Client - -Following operations are supported by WSO2 Stream Processor 4 Event Simulator Client of PySiddhi. - -* Single Simulations -* Saving a simulation configuration -* Editing a simulation configuration -* Deleting a simulation configuration -* Retrieving a simulation configuration -* Uploading a CSV file -* Editing and uploaded CSV file -* Deleting an uploaded CSV file -* Pausing an event simulation -* Resuming an event simulation -* Stopping an event simulation - -Refer [Documentation of WSO2 SP 4.0 Event simulator REST API](https://docs.wso2.com/display/SP400/Simulating+Events) for more details. - -## Pre-requisites -1. Install _PySiddhi_ by following [Installation Guide](Installation-Guide). -2. WSO2 SP 4.0 must be already installed and running. If not, follow the steps below. - - Obtain WSO2 SP 4.x.x binary distribution from https://github.com/wso2/product-sp/releases. - - Extract `wso2sp-4.x.x.zip` to a suitable location (say `SP_HOME`). - - Navigate to `SP_Home/bin/` and run `sh worker.sh`. - -## Supported API operations - -### Single Simulations -```python -from PySiddhi.sp.SPClient import SPClient -from PySiddhi.sp.EventSimulator.SingleSimulationConfiguration import SingleSimulationConfiguration - -spPythonClient = SPClient('http://localhost:9090') # host URL of SP -eventSimulatorClient = spPythonClient.getEventSimulatorClient() - -singleSimulationConfiguration = SingleSimulationConfiguration("TestSiddhiApp","FooStream",[None, 9, 45]) - -if eventSimulatorClient.simulateSingleEvent(singleSimulationConfiguration, username="admin", password="admin"): - logging.info("Successfully Simulated Single Event") -``` - -### Saving a Simulation Configuration (Feed Simulation Configuration) -```python -from PySiddhi.sp.SPClient import SPClient -from PySiddhi.sp.EventSimulator.AttributeConfiguration import AttributeConfiguration -from PySiddhi.sp.EventSimulator.FeedSimulationConfiguration import FeedSimulationConfiguration -from PySiddhi.sp.EventSimulator.SimulationSource import SimulationSource - -spPythonClient = SPClient('http://localhost:9090') # host URL of SP -eventSimulatorClient = spPythonClient.getEventSimulatorClient() - -svr = FeedSimulationConfiguration("simulationPrimitive") -svr.properties.timestampStartTime = 1488615136958 -svr.properties.timestampEndTime = None -svr.properties.noOfEvents = 8 -svr.properties.timeInterval = 1000 - -sm1 = SimulationSource(simulationType=SimulationSource.Type.RANDOM_DATA_SIMULATION, streamName="FooStream", siddhiAppName="TestSiddhiApp", timestampInterval=5) - -sm1.attributeConfiguration.append(AttributeConfiguration(AttributeConfiguration.Type.PRIMITIVE_BASED, length=10)) -sm1.attributeConfiguration.append(AttributeConfiguration(AttributeConfiguration.Type.PRIMITIVE_BASED, min=35000, max=30000, precision=2)) -sm1.attributeConfiguration.append(AttributeConfiguration(AttributeConfiguration.Type.PRIMITIVE_BASED, min=150, max=300)) - -svr.sources.append(sm1) - -if eventSimulatorClient.saveSimulationFeedConfiguration(svr, username="admin", password="admin"): - print("Successfully Saved Simulation Feed Configuration") -``` - -For more examples on Event Simulator, refer [EventSimulatorTests](https://github.com/siddhi-io/PySiddhi/blob/master/Tests/SPTests/EventSimulatorTests.py). \ No newline at end of file diff --git a/docs/Quick-Demo-(SP4).md b/docs/Quick-Demo-(SP4).md deleted file mode 100644 index 64ae119..0000000 --- a/docs/Quick-Demo-(SP4).md +++ /dev/null @@ -1,35 +0,0 @@ -# Run PySiddhi Client with WSO2 Stream Processor - -PySiddhi REST Client enable you to manage [WSO2 Stream Processor](https://wso2.com/analytics) using Python. -The detail information on PySiddhi client APIs refer: -* [Client APIs to Manage Siddhi App](Siddhi-App-Management-of-WSO2-SP-4.0) -* [Client APIs to Simulate Events](Event-Simulator-WSO2-SP-4.0) - -The following steps demonstrate how PySiddhi SP Client can manage Siddhi Apps running on WSO2 Stream Processor 4.x.x. -This code retrieves the list of Siddhi Apps published in WSO2SP. - -**Step 1:** Setup WSO2 Stream Processor - - Obtain WSO2 SP 4.x.x binary distribution from [https://wso2.com/analytics](https://wso2.com/analytics). - - Extract `wso2sp-4.x.x.zip` to a suitable location (say `SP_HOME`). - - Navigate to `SP_Home/bin/` and run `sh worker.sh`. - -**Step 2:** Load Python Imports. -```python -from PySiddhi.sp.SPClient import SPClient -``` -**Step 3:** Connect to WSO2 SP via REST API using the SiddhiApp Management Client. -```python -spPythonClient = SPClient('http://localhost:9090') -siddhiAppManagementClient = spPythonClient.getSiddhiAppManagementClient() -``` -**Step 4:** Obtain list of Siddhi Apps published in WSO2 SP. -```python -print(siddhiAppManagementClient.listSiddhiApps()) -``` -**Sample Outputs** -```log -['TestSiddhiApp'] -``` -**Cleanup** - -Stop WSO2 SP by sending `Ctrl+C` to terminal window running `worker.sh`. This would shutdown the SP server \ No newline at end of file diff --git a/docs/Siddhi-App-Management-of-WSO2-SP-4.md b/docs/Siddhi-App-Management-of-WSO2-SP-4.md deleted file mode 100644 index a15075f..0000000 --- a/docs/Siddhi-App-Management-of-WSO2-SP-4.md +++ /dev/null @@ -1,93 +0,0 @@ -# Siddhi App Management using PySiddhi Client - -Using _WSO2 SP Client_ in _PySiddhi_, following operations can be undertaken on _Siddhi App Management_ of _WSO2 SP 4_. -* List all Siddhi Apps. -* Retrieve Siddhi App using name. -* Retrieve Status of Siddhi App. -* Save a new Siddhi App in SP. -* Update a Siddhi App stored in SP. -* Delete a Siddhi App stored in SP. - -## Pre-requisites -1. Install _PySiddhi_ by following [Installation Guide](Installation-Guide.md). -2. WSO2 SP 4.0 must be already installed and running. If not, follow the steps below. - - Obtain WSO2 SP 4.x.x binary distribution from [https://wso2.com/analytics](https://wso2.com/analytics). - - Extract `wso2sp-4.x.x.zip` to a suitable location (say `SP_HOME`). - - Navigate to `SP_Home/bin/` and run `sh worker.sh`. - -## Supported API operations - -### List all Siddhi Apps -```python -from PySiddhi.sp.SPClient import SPClient - -spPythonClient = SPClient('http://localhost:9090') # host URL of SP -siddhiAppManagementClient = spPythonClient.getSiddhiAppManagementClient() - -print(siddhiAppManagementClient.listSiddhiApps()) # prints a list of siddhi apps -``` -### Retrieve Siddhi App using Name -```python -from PySiddhi.sp.SPClient import SPClient -spPythonClient = SPClient('http://localhost:9090') # host URL of SP -siddhiAppManagementClient = spPythonClient.getSiddhiAppManagementClient() - -app = siddhiAppManagementClient.retrieveSiddhiApp("TestSiddhiApp", username=admin, password=admin) -print(app) -``` - -### Retrieve Siddhi App Status -```python -from PySiddhi.sp.SPClient import SPClient -spPythonClient = SPClient('http://localhost:9090') # host URL of SP -siddhiAppManagementClient = spPythonClient.getSiddhiAppManagementClient() - -status = siddhiAppManagementClient.retrieveStatusSiddhiApp("TestSiddhiApp", username=admin, password=admin) -print (status) # prints status of siddhi app (active) -``` - -### Save new Siddhi App -```python -from PySiddhi.sp.SPClient import SPClient - -spPythonClient = SPClient('http://localhost:9090') # host URL of SP -siddhiAppManagementClient = spPythonClient.getSiddhiAppManagementClient() - -siddhiApp = "@App:name('TestSiddhiApp1') " - "define stream FooStream(symbol string, price float, volume long); " - "@source(type='inMemory', topic='symbol', @map(type='passThrough')) " - "define stream BarStream(symbol string, price float, volume long); " - "from FooStream select symbol, price, volume insert into BarStream; " - -if siddhiAppManagementClient.saveSiddhiApp(siddhiApp, username=admin, password=admin): - print("Successfully saved!") -``` -### Update a saved Siddhi App -```python -from PySiddhi.sp.SPClient import SPClient -from PySiddhi.sp.SiddhiAppManagement.SiddhiAppManagementClient import UpdateAppStatusResponse - -spPythonClient = SPClient('http://localhost:9090') # Host URL of SP -siddhiAppManagementClient = spPythonClient.getSiddhiAppManagementClient() - -siddhiApp = "@App:name('TestSiddhiApp1') " - "define stream FooStream (symbol string, price float, volume long); " - "@source(type='inMemory', topic='symbol', @map(type='passThrough')) " - "define stream BarStream (symbol string, price float, volume long); " - "from FooStream select symbol, price, volume insert into BarStream; " - -result = siddhiAppManagementClient.updateSiddhiApp(siddhiApp, username=admin, password=admin) -if result.name == UpdateAppStatusResponse.savedNew.name: - print("Saved new Siddhi App") -elif result.name == UpdateAppStatusResponse.updated.name: - print("Updated saved Siddhi App") -``` -### Delete a Siddhi App -```python -from PySiddhi.sp.SPClient import SPClient - -spPythonClient = SPClient('http://localhost:9090') # host URL of SP -siddhiAppManagementClient = spPythonClient.getSiddhiAppManagementClient() - -siddhiAppManagementClient.deleteSiddhiApp("TestSiddhiApp1", username=admin, password=admin) # returns True if successfully deleted -``` \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index bcc4f73..d59842f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -5,7 +5,6 @@ described via a ***Streaming SQL language***, and triggers actions. It performs ***Complex Event Processing*** on streaming data. Its Siddhi core is written in Java library. - PySiddhi wraps [Siddhi 5](https://siddhi-io.github.io/siddhi/) -- PySiddhi includes a REST Client for [WSO2 Stream Processor(SP) 4.x.x](https://wso2.com/analytics). ## Content @@ -14,18 +13,12 @@ described via a ***Streaming SQL language***, and triggers actions. It performs * [Run PySiddhi](Run-PySiddhi.md) * [Debug PySiddhi](Debugging-Siddhi-Queries.md) * [Advanced Concepts of PySiddhi](Using-Siddhi-from-Python.md) -* Using PySiddhi REST Client to Manage WSO2 Stream Processor - * [Demo Managing Siddhi Apps on WSO2 SP](Quick-Demo-(SP4).md) - * [APIs to Manage Siddhi App](Siddhi-App-Management-of-WSO2-SP-4.md) - * [APIs to Simulate Events](Event-Simulator-of-SP-4.md) ## Features - [x] Basic functionality of Siddhi 5.x.x - [x] Siddhi Debugger - [x] Support to Siddhi Extensions Loading -- [x] Rest Client on WSO2 SP 4.x.x - Siddhi App Management -- [x] Rest Client on WSO2 SP 4.x.x - Event Simulation ## Installation diff --git a/mkdocs.yml b/mkdocs.yml index fe04352..2645b38 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -35,10 +35,6 @@ pages: - Installation Guide: Installation-Guide.md - Run PySiddhi: Run-PySiddhi.md - Debug PySiddhi: Debugging-Siddhi-Queries.md - - Advanced Concepts of PySiddhi: Using-Siddhi-from-Python.md - - PySiddhi Client for WSO2 Stream Processor: - - Run PySiddhi Client: Quick-Demo-(SP4).md - - Client APIs to Manage Siddhi App: Siddhi-App-Management-of-WSO2-SP-4.md - - Client APIs to Simulate Events: Event-Simulator-of-SP-4.md + - Advanced Concepts: Using-Siddhi-from-Python.md - License: license.md