Toast应用开发与测试指南
立即解锁
发布时间: 2025-08-19 01:22:54 阅读量: 2 订阅数: 8 


OSGi与Equinox:构建高度模块化的Java系统
# Toast 应用开发与测试指南
## 1. 实用工具类介绍
在前后端代码片段中,会发现一些新的实用工具类,具体包括常量接口 `ICoreConstants` 和 `IEmergencyConstants`,以及 `PropertyManager` 和 `LogUtility`。
### 1.1 常量接口
Toast 使用 Java 接口来定义不同模块间共享的常量:
- `ICoreConstants`:位于 `org.equinoxosgi.toast.core` 模块,供任何 Toast 模块使用。
- `IEmergencyConstants`:位于 `org.equinoxosgi.toast.core.emergency` 模块,其定义的常量仅用于实现紧急场景的部分,包括客户端和后端。
### 1.2 属性管理
`PropertyManager` 类位于 `org.equinoxosgi.toast.core` 模块,是一个简单的辅助类,用于暴露 Java 系统属性并记录属性访问,以便调试。目前,定义系统属性最简单的方法是在启动时使用 VM 参数,操作步骤如下:
1. 在运行配置的“Arguments”选项卡的“VM Arguments”部分添加键值对,每个键值对前加 `-D`。
2. 例如,要定义 `toast.id` 参数值为 `Kevin131`,添加 `-Dtoast.id=Kevin131`。
### 1.3 日志记录
`LogUtility` 类位于 `org.equinoxosgi.toast.core` 模块,提供了一个简单的 API,用于将不同级别的消息记录到 OSGi 日志服务和控制台。以下是使用示例:
```plaintext
LogUtility 被广泛应用于 Toast 中,例如 EmergencyMonitor 在两个地方使用了 LogUtility:
- 当收到后端回复时,以调试级别记录,可通过设置 LogUtility 的日志级别为 LOG_INFO 或更高来抑制。
- 发生通信错误时,以错误级别记录,并传递异常和描述性消息。
```
### 1.4 单例与服务的选择
对于 `LogUtility` 和 `PropertyManager`,选择将它们实现为单例而非服务,原因如下:
- 要求用户将这些实用工具作为服务获取往往会带来更多麻烦。
- 实用工具需要在比服务更低的级别上运行。
- 若将它们作为服务,会使简单的实现和 API 变得复杂。
## 2. 运行 Toast
由于 Toast 由两个独立的运行时组成,因此需要两个启动配置。
### 2.1 运行后端
运行后端的步骤如下:
1. 创建一个名为 `backend` 的新运行配置。
2. 从工作区选择以下三个模块:
- `org.equinoxosgi.toast.backend.emergency`
- `org.equinoxosgi.toast.core`
- `org.equinoxosgi.toast.core.emergency`
3. 从目标平台选择以下六个模块:
- `javax.servlet`
- `org.eclipse.equinox.ds`
- `org.eclipse.equinox.http`
- `org.eclipse.equinox.util`
- `org.eclipse.osgi`
- `org.eclipse.osgi.services`
4. 添加以下 VM 参数:
- `-Dequinox.ds.print=true`
- `-Dtoast.core.util.logLevel=DEBUG`
- `-Dorg.osgi.service.http.port=8080`
5. 在“Common”选项卡中,选择“Shared file”选项,并使用 `/org.equinoxosgi.toast.backend.emergency` 作为文件夹。
6. 运行 `backend` 启动配置。
运行成功后,控制台会显示以下日志消息:
```plaintext
Property: -Dtoast.backend.url=http://localhost:8080/toast
Component: Registered EmergencyServlet at /toast/emergency
```
可通过浏览器访问 `http://localhost:8080/toast/emergency` 检查 Servlet。
### 2.2 运行客户端
运行客户端的步骤如下:
1. 将 Toast 启动配置重命名为 `client`。
2. 在原有模块基础上,添加以下三个模块:
0
0
复制全文
相关推荐










