ballerina 学习二十三 扩展ballerina
扩展ballerina 目前有三种方式:
- 扩展client connector的包 (数据库访问,基础设施,api)
- 扩展server listenner 绑定为不同的协议
- 添加新的注解到ballerina 源码进行编译并修改运行软件包
创建client connector
client connector 由开发人员在创建endpoint 时进行初始化,你自己可以开发自己的connector 并发布到私服,或者照中央仓库
- 创建 client connector 的步骤
参考例子 https://github.com/muthulee/package-twilio-super-simple/blob/master/twilio/twilio_endpoint.bal
https://github.com/muthulee/package-client-endpoint-guide/tree/master/clientendpointsample
a. 创建包
b. 创建一个对象(object) 包含init() && getClient() function
c. 实现init() function ,这个方法是在用户(开发人员)初始化endpoint 的时候被调用的
d. 实现getClient() function ,这个方法是在connection 被返回的时候调用
e. 构建包&&push 到仓库
创建自定义注解&& builder extension
- 注解说明:
注解实际上就是一段代码片段,可以附加到ballerina 代中,其中包含了一些关联的元数据信息,
注解不可以执行,只是可以用来修改执行代码的一些行为
注解可以被附加到 Services Resources Functions Connectors Actions (of Connectors) TypeMappers Structs Constants Annotations Object Record Enum Transformer Endpoint
- builder extension
java 代码,在ballerina 的编译阶段进行执行
参考资料
https://github.com/muthulee/package-twilio-super-simple/blob/master/twilio/twilio_endpoint.bal
https://github.com/muthulee/package-client-endpoint-guide/tree/master/clientendpointsample
https://github.com/ballerinax/hello
ballerina 学习二十三 扩展ballerina的更多相关文章
- ballerina 学习二十八 快速grpc 服务开发
ballerina 的grpc 开发模型,对于开发者来说简单了好多,不是schema first 的方式,而是我们 只要编写简单的ballerina service 就可以了,proto 文件是自动帮 ...
- ballerina 学习二十五 项目docker 部署&& 运行
ballerina 官方提供了docker 的runtime,还是比较方便的 基本项目创建 使用cli创建项目 按照提示操作就行 ballerina init -i 项目结构 添加了dockerfil ...
- ballerina 学习 三十一 扩展开发(二)
上篇说了使用ballerina 语言开发扩展模块,对于注解类型的我们是需要使用java 语言进行 开发的 官方提供了一个hello 的demo可以参考 https://github.com/balle ...
- ballerina 学习 三十 扩展开发(一)
ballerina 主要是分为两大类 基于ballerina 语言开发的,一般是客户端的connector 使用java语言开发的(类似的基于jvm的都可以),一般是注解以及进行构件生成 baller ...
- ballerina 学习二十九 数据库操作
ballerina 数据操作也是比较方便的,官方也我们提供了数据操作的抽象,但是我们还是依赖数据库驱动的. 数据库驱动还是jdbc模式的 项目准备 项目结构 ├── mysql_demo │ ├── ...
- ballerina 学习二十七 项目k8s部署&& 运行
ballerina k8s 部署和docker 都是同样的简单,编写service 添加注解就可以了 参考项目 https://ballerina.io/learn/by-guide/restful- ...
- ballerina 学习二十六 项目docker 部署&& 运行(二)
ballerina 从发布,到现在官方文档的更新也是很给力的,同时也有好多改进,越来越好用了 可以参考官方文档 https://ballerina.io/learn/by-guide/restful- ...
- ballerina 学习二十四 监控ballerina
ballerina 服务的监控还是比较方便的,以及集成了Prometheus Grafana Jaeger Elastic Stack 监控服务监控的集成 主要包含以下几个步骤 a. 安装docker ...
- ballerina 学习二十二 弹性服务
主要包含断路器模式,负载均衡模式,故障转移,重试 Circuit Breaker 参考代码 import ballerina/http; import ballerina/log; import ba ...
随机推荐
- uva 1048 最短路的建图 (巧,精品)
大白书 P341这题说的是给了NT种飞机票,给了价钱和整个途径,给了nI条要旅游的路线.使用飞机票都必须从头第一站开始坐,可以再这个路径上的任何一点下飞机一但下飞机了就不能再上飞机,只能重新买票,对于 ...
- mongodb-的副本集
复制的重要性不再多说,其主要就是提供数据保护,数据高可用和灾难恢复. 复制是跨多个mongodb服务器分布和维护的方法.mongodb可以把数据从一个节点复制到其他节点并在修改时进行同步. mongo ...
- Java实现获取属性文件的参数值
Java实现获取属性文件的参数值 1,属性文件内容(analysis.properties),路径必须在:src根目录下: #client data path analysis.client.data ...
- RocEDU.阅读.写作《苏菲的世界》书摘(六)
* 身为一个经验主义者,休姆期许自己要整理前人所提出的一些混淆不清的思想与观念,包括中世纪到十七世纪这段期间,理性主义哲学家留传下来的许多言论和著作.休姆建议,人应回到对世界有自发性感觉的状态.他说, ...
- 20145201李子璇 《网络对抗》 Web基础
1.实验后回答问题 (1)什么是表单 它在网页中主要负责数据采集功能,通过用户提交的一些数据来建立网站管理者与浏览者之间的桥梁. 两个组成部分:①HTML源代码用于描述表单(比如域,标签和浏览者在页面 ...
- Two Sum(II和IV)
本文包含leetcode上的Two Sum(Python实现).Two Sum II - Input array is sorted(Python实现).Two Sum IV - Input is a ...
- net.sf.json和 com.fasterxml.jackson中对象转json的区别
近期做项目的时候,发现使用net.sf.json包中的JSONObject或JSONArray将对象转为json数据结构存在一个坑.当对String类型的属性赋值为null情况下,转为json结构为& ...
- 实时刷新winform中的某一个控件上的文字
需要注意的是,必须从UI线程,另外启动一个线程才可以. 在新线程调用异步刷新就OK了 Thread thread; private void button1_Click(object sender, ...
- 将日期转换为指定的格式:比如转换成 年月日时分秒 这种格式:yyyy-MM-dd hh:mm:ss 或者 yyyy-MM-dd。总结下。
可以为Date原型添加如下的方法: Date.prototype.format = function(fmt) { var o = { "M+" : this.getMonth() ...
- R中的sample函数
今天介绍一些运算函数,它们的使用很简单,没有什么难度,但是也会用的着. 在医学统计学或者流行病学里的现场调查.样本选择经常会提到一个词:随机抽样.随机抽样是为了保证各比较组之间均衡性的一个很重要的方法 ...