mirror of
https://gitee.com/BDWare/contract-java-example.git
synced 2026-02-15 00:59:31 +00:00
Compare commits
6 Commits
1.3.0
...
905b06be39
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
905b06be39 | ||
|
|
dae0ee3726 | ||
|
|
1b60a1b64a | ||
|
|
2d5b0f7586 | ||
|
|
f323163303 | ||
|
|
5b7811b85b |
59
README.md
59
README.md
@@ -1,30 +1,28 @@
|
||||
# contract-java-example
|
||||
|
||||
#### 介绍
|
||||
## 介绍
|
||||
|
||||
idea开发合约的示例。
|
||||
|
||||
#### 测试环境配置
|
||||
## 测试环境配置
|
||||
|
||||
1. 在本地准备docker测试环境。
|
||||
|
||||
```bash
|
||||
cd bdserver-docker-compose
|
||||
docker-compose up -d
|
||||
cat bdcontract/manager.keypair
|
||||
#并复制这组{"publickey".."privateKey"}
|
||||
```
|
||||
|
||||
2. 打开浏览器`http://127.0.0.1:21030/NodePortal.html`。点击右上角`欢迎04xx`按钮,将步骤1中的keyPair复制,并点`导入密钥`。
|
||||
|
||||
### 开发环境配置
|
||||
## 开发环境配置
|
||||
|
||||
可安装idea插件:`ideaplugin/yjs-formater-1.0-SNAPSHOT-1653060411648.zip`
|
||||
用于格式化yjs文件和自动补全。
|
||||
|
||||
#### 调试运行
|
||||
## 在本机调试运行
|
||||
|
||||
1修改debugconf.json,将cpHost改为从docker可访问的域名或ip。
|
||||
1.修改debugconf.json,将cpHost改为从docker可访问的域名或ip。
|
||||
|
||||
```
|
||||
在MAC/Linux环境下,可使用ifconfig | grep inet ,查看本地局域网ip,并配置到cpHost字段。
|
||||
@@ -55,14 +53,47 @@ test/java/HelloTest.run
|
||||
```
|
||||
|
||||
注意run方法中的`for (;;);`用于防止测试用例退出。
|
||||
在windows中可能影响其他测试用例运行。可独立写个`public static void main(String[] args)`去运行合约。
|
||||
在windows中可能影响其他测试用例运行。可编写`public static void main(String[] args)`去运行合约。
|
||||
|
||||
#### 部署运行
|
||||
3.带UI的ypk调试
|
||||
由于bdcontract会根据启动参数中的ypkPath去解析ypk文件中的资源文件,因此,当需要通过`http://xxx:xx/DOIP/ContractID`这种形式去访问静态资源时,
|
||||
需要配置ypk路径映射。
|
||||
一种做法是:
|
||||
|
||||
1) 在./bdserver-docker-compose目录下,在启动之后,会生成一个文件`./bdcontract/BDWareProjectDir`。将该目录映射至./backend目录下或是backend的上级目录下。
|
||||
|
||||
```
|
||||
cd 至backend
|
||||
ln -s /absolute/path/to/BDWareProjectDir ./
|
||||
```
|
||||
|
||||
2) 修改DebugMain的启动路径为BDWareProjectDir所在目录。
|
||||
|
||||
3) 修改debugconf.json中的ypkPath,使用相对路径的形式`./BDWareProjectDir/xxx`。
|
||||
|
||||
4) 注意需要将编译好的ypk放至BDWareProjectDir中。可编写一个新的gradle task完成脚本化复制。如:
|
||||
|
||||
```
|
||||
task copyToBDWareProjectDir(type: Copy) {
|
||||
from "./build/contractexample-${currVersion}.ypk"
|
||||
into "../bdserver-docker-compose/bdcontract/BDWareProjectDir/"
|
||||
}
|
||||
```
|
||||
|
||||
## 在docker内调试运行
|
||||
|
||||
打开镜像的`NodePortal.html`页面,以ypk的形式启动。
|
||||
在启动时,增加`remoteDebugPort`,注意远程调试的端口需要在镜像中映射出来。
|
||||
可使用docker镜像默认映射端口范围`21050-21100`,例如`21058`。
|
||||
而后即可通过jdwp可进行远程调试。 如果使用`idea`作为开发环境,则可搜索`idea java remote debug`,查看相关教程。
|
||||
NodePortal.html可参考:[BDContract管理页面](https://public.internetapi.cn/docs/bdcontract/doc/IDEUsage.html)
|
||||
|
||||
## 部署运行
|
||||
|
||||
部署至远程服务端执行":backend:deploy"任务:
|
||||
即执行./backend/build.gradle 中的 deploy。
|
||||
|
||||
#### 前端sdk说明
|
||||
## 前端sdk说明
|
||||
|
||||
1. 如何使用javascript sdk
|
||||
2. 如何使用typescript sdk
|
||||
@@ -70,16 +101,16 @@ test/java/HelloTest.run
|
||||
3. 如何配置成前后端独立连接的
|
||||
4. 如何配置成前后端一体化
|
||||
|
||||
##### 模拟后端数据
|
||||
## 模拟后端数据
|
||||
|
||||
#### 后端常用方法说明
|
||||
## 后端常用方法说明
|
||||
|
||||
##### 调用相同CP的yjs代码
|
||||
## 调用相同CP的yjs代码
|
||||
|
||||
参考:
|
||||
Hello.callYJSInSameCP
|
||||
|
||||
##### 调用其他CP的yjs代码
|
||||
## 调用其他CP的yjs代码
|
||||
|
||||
参考:
|
||||
Hello.callYJSInOtherCP
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
buildscript {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
mavenLocal()
|
||||
}
|
||||
dependencies {
|
||||
classpath "org.bdware.bdcontract:simple-ypk-packer:0.5.0"
|
||||
classpath "org.bdware.bdcontract:ypk-deploy-tool:0.5.2"
|
||||
classpath "org.bdware.bdcontract:simple-ypk-packer:0.5.5"
|
||||
classpath "org.bdware.bdcontract:ypk-deploy-tool:0.7.1"
|
||||
}
|
||||
}
|
||||
plugins {
|
||||
@@ -40,7 +39,7 @@ sourceSets {
|
||||
dependencies {
|
||||
api 'org.apache.logging.log4j:log4j-core:2.17.2'
|
||||
api 'org.apache.logging.log4j:log4j-api:2.17.2'
|
||||
implementation 'org.bdware.sc:cp:1.5.7'
|
||||
implementation 'org.bdware.sc:cp:1.6.8'
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
}
|
||||
|
||||
@@ -73,12 +72,16 @@ task copyJar(type: Copy, dependsOn: [":backend:jar", ":backend:copyLibs"]) {
|
||||
}
|
||||
def reltivePath = "./backend"
|
||||
//reltivePath="."
|
||||
def currVersion = "1.3.0"
|
||||
def currVersion = "1.3.2"
|
||||
task grepCP(dependsOn: ["copyJar"]) {
|
||||
doLast {
|
||||
org.bdware.datanet.YPKPacker.grepJarByCPVersion("${reltivePath}/build/output/libs", org.bdware.datanet.CPVersion.cp_1_5_3)
|
||||
org.bdware.datanet.YPKPacker.grepJarByCPVersion("${reltivePath}/build/output/libs", org.bdware.datanet.CPVersion.cp_1_6_8)
|
||||
org.bdware.datanet.YPKPacker.grepJarByListFile("${reltivePath}/build/output/libs", "${reltivePath}/grepcp.list")
|
||||
|
||||
}
|
||||
}
|
||||
tasks.processResources.setDuplicatesStrategy(DuplicatesStrategy.INCLUDE)
|
||||
tasks.processTestResources.setDuplicatesStrategy(DuplicatesStrategy.INCLUDE)
|
||||
|
||||
task buildZip(type: Zip, dependsOn: ["copyAssets", "copyJar", "copyYJS", "grepCP"]) {
|
||||
from './build/output/'
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
log4j-core-2.14.1.jar
|
||||
log4j-api-2.14.1.jar
|
||||
yjs.jar
|
||||
common-1.5.9.jar
|
||||
cp-1.6.4.jar
|
||||
rocksdbjni-7.3.1.jar
|
||||
@@ -12,7 +12,7 @@ services:
|
||||
- "2416:2416" # P2P
|
||||
- "2401:2401" # API
|
||||
bdcontract:
|
||||
image: bdware/bdcontract:1.7.9
|
||||
image: bdware/bdcontract:1.8.2
|
||||
command: "-Dfile.encoding=UTF-8 -Djava.library.path='./dynamicLibrary' -Dlog4j.configurationFile=./log4j2.properties -cp ./libs/*:bdagent.jar org.bdware.server.CMHttpServer"
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
|
||||
BIN
ideaplugin/yjs-formater-1.2.zip
Normal file
BIN
ideaplugin/yjs-formater-1.2.zip
Normal file
Binary file not shown.
BIN
ideaplugin/yjs-formater-1.4.7.zip
Normal file
BIN
ideaplugin/yjs-formater-1.4.7.zip
Normal file
Binary file not shown.
Reference in New Issue
Block a user