扩展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
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的更多相关文章

  1. ballerina 学习二十八 快速grpc 服务开发

    ballerina 的grpc 开发模型,对于开发者来说简单了好多,不是schema first 的方式,而是我们 只要编写简单的ballerina service 就可以了,proto 文件是自动帮 ...

  2. ballerina 学习二十五 项目docker 部署&& 运行

    ballerina 官方提供了docker 的runtime,还是比较方便的 基本项目创建 使用cli创建项目 按照提示操作就行 ballerina init -i 项目结构 添加了dockerfil ...

  3. ballerina 学习 三十一 扩展开发(二)

    上篇说了使用ballerina 语言开发扩展模块,对于注解类型的我们是需要使用java 语言进行 开发的 官方提供了一个hello 的demo可以参考 https://github.com/balle ...

  4. ballerina 学习 三十 扩展开发(一)

    ballerina 主要是分为两大类 基于ballerina 语言开发的,一般是客户端的connector 使用java语言开发的(类似的基于jvm的都可以),一般是注解以及进行构件生成 baller ...

  5. ballerina 学习二十九 数据库操作

    ballerina 数据操作也是比较方便的,官方也我们提供了数据操作的抽象,但是我们还是依赖数据库驱动的. 数据库驱动还是jdbc模式的 项目准备 项目结构 ├── mysql_demo │ ├── ...

  6. ballerina 学习二十七 项目k8s部署&& 运行

    ballerina k8s 部署和docker 都是同样的简单,编写service 添加注解就可以了 参考项目 https://ballerina.io/learn/by-guide/restful- ...

  7. ballerina 学习二十六 项目docker 部署&& 运行(二)

    ballerina 从发布,到现在官方文档的更新也是很给力的,同时也有好多改进,越来越好用了 可以参考官方文档 https://ballerina.io/learn/by-guide/restful- ...

  8. ballerina 学习二十四 监控ballerina

    ballerina 服务的监控还是比较方便的,以及集成了Prometheus Grafana Jaeger Elastic Stack 监控服务监控的集成 主要包含以下几个步骤 a. 安装docker ...

  9. ballerina 学习二十二 弹性服务

    主要包含断路器模式,负载均衡模式,故障转移,重试 Circuit Breaker 参考代码 import ballerina/http; import ballerina/log; import ba ...

随机推荐

  1. ZOJ Monthly, March 2018 Solution

    A - Easy Number Game 水. #include <bits/stdc++.h> using namespace std; #define ll long long #de ...

  2. IDFA踩坑记录

    IDFA踩坑记录: 1.iOS10.0 以下,即使打开“限制广告跟踪”,依然可以读取idfa: 2.打开“限制广告跟踪”,然后再关闭“限制广告跟踪”,idfa会改变: 3.越狱机器安装开发证书打的包, ...

  3. 获取WebView加载的网页内容并进行动态修改

    http://www.jianshu.com/p/3f207a8e32cb [Android]WebView读取本地图片 http://www.cnblogs.com/kimmy/p/4769788. ...

  4. Python3.x:os.listdir和os.walk(获取路径方法)的区别

    Python3.x:os.listdir和os.walk(获取路径方法)的区别 1,os.listdir 使用情况:在一个目录下面只有文件,没有文件夹,这个时候可以使用os.listdir: 例如:d ...

  5. SQL Server2008安装图解

    1).双击set.up安装:

  6. js 逗号操作符

    有一道js面试题,题目是这样的:下列代码的执行结果是什么,为什么? var i, j, k; for (i=0, j=0; i<10, j<6; i++, j++) { k = i+j; ...

  7. js中fn()和return fn()的区别

    参考文章:http://www.jb51.net/article/87977.htm 这文章中没有讲明白,其实只要把文章里的代码加和不加return调试一下就知道是怎么回事了. var i = 0; ...

  8. p4c-bm安装

    Generates the JSON configuration for the behavioral-model (bmv2).它是用来形成 行为模型BMV2 的 JSON配置 的. Importa ...

  9. HDU 4714 Treecycle(树形dp)

    http://acm.hdu.edu.cn/showproblem.php?pid=4714 题意:给出一棵树,删除一条边和添加一条边的代价都是1,现在要把这棵树变成环,求需要花的最小代价. 思路: ...

  10. python爬虫scrapy学习之篇二

    继上篇<python之urllib2简单解析HTML页面>之后学习使用Python比较有名的爬虫scrapy.网上搜到两篇相应的文档,一篇是较早版本的中文文档Scrapy 0.24 文档, ...