# vertx-zero
**Repository Path**: flyskyafei/vertx-zero
## Basic Information
- **Project Name**: vertx-zero
- **Description**: This project is based on Vert.x, the idea came from Spring-Boot framework. It could help developers focus on business requirements instead of more details of Vert.x.
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: http://www.vertxup.cn
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 49
- **Created**: 2022-04-21
- **Last Updated**: 2022-04-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Zero Framework
[](https://maven-badges.herokuapp.com/maven-central/cn.vertxup/vertx-zero/) [](https://www.apache.org/licenses/LICENSE-2.0.txt) [](https://travis-ci.org/silentbalanceyh/vertx-zero)
This project is based on Vert.x, the idea came from Spring-Boot framework. It could help developers focus on business
requirements instead of more details of Vert.x. The project contains two parts "Up" and "Zero". "Up" means running up, "
Zero" means no more workload for high producation, you could run your project with default configuration only.
Micro Service architecture is a future focused method to design and build mature system and help more companies to
implement project faster, based on this idea, `Zero Framework` came out. It's micro-service oriented framework and will
be verified by real projects. Also it provide a tool set to help developers to do correct things. Now there are two
enterprise application cases those are implemented by `Zero`, although the number is small, but the cases could verify
that `Zero` can be used in production environment instead of tool, demo or good looks.
This framework contains four sub-projects, all these projects are located under `vertx-gaia` sub-project.
* `vertx-gaia/vertx-co`: Core Library of Zero Framework
* `vertx-gaia/vertx-tp`: Third part integration components in Zero Framework
* `vertx-gaia/vertx-ifx`:Useful plug-ins that could be supported in Zero Framework with **Infix Structure**
* `vertx-gaia/vertx-up`: Zero Up Engine with nested vert.x web container
* `vertx-gaia/vertx-rx`: Zero Up Engine with nested rxjava web container instead of web container ( Experimental Version
for future )
* `vertx-import`: Zero Usage dependency project to perform development, provide uniform dependency for your projects.
In latest version, examples have been moved
to [https://github.com/silentbalanceyh/vertx-zero-example](https://github.com/silentbalanceyh/vertx-zero-example)
The chinese training book is [《Zero思然汀》](https://lang-yu.gitbook.io/zero/)
> If your wan't to study vert.x development skill, you can refer chinese tutorial:[《Vert.x逐陆记》](https://lang-yu.gitbook.io/vert-x/). ( In Progress )

## 0. Features
In 2019, Zero Framework has been re-factor to new version `0.6.x` and here I provide the feature list to let developers
know more details in Zero Framework: [Feature List](FEATURES.md).
Extension Module:

## 1. Documentation
### 1.1. Official Document
* You can refer the link to see documents of Zero Framework: [Offical Document](DOCUMENT.md)
* For all module api documents you can refere [Api Document](DOCUMENT-API.md)
### 1.2. Related
* You can refer [Zero UI](http://www.vertxui.cn) to visit front-end framework, it runs 3 production cases ( CN ).
* You can refer [Spring Up](http://www.spring-up.cn) to visit spring framework bridged component ( Experimental
Version ), it runs one production cases ( CN ).
* You can refer [Origin X](http://www.origin-x.cn) to visit knowledge management of all documents, it act as entry of
documentation ( CN ).
## 2. Envrionment
### 2.1. Configuration in pom.xml
If you want to use Zero framework, you can add following dependency into you `pom.xml` to use Zero:
**JDK 8**, vert.x 3.9.x
```xml
vertx-import
cn.vertxup
0.6.2
```
**JDK 11+**, vert.x 4.x
```xml
vertx-import
cn.vertxup
0.8.1
```
### 2.2. Start Up
In your project, you can provide main entry only as following to run Zero \( Annotated with `@Up` \) .
```java
import io.vertx.up.VertxApplication;
import io.vertx.up.annotations.Up;
@Up
public class Driver {
public static void main(final String[] args) {
VertxApplication.run(Driver.class);
}
}
```
Once the Zero is up, you can see following logs in your console \( The default port is `6083` \):
```
[ ZERO ] ZeroHttpAgent Http Server has been started successfully. \
Endpoint: http://0.0.0.0:6083/
```
### 2.3. Tips
#### 2.3.1. Data Specification
In zero framework, we designed uniform data specification as following response data format for business usage:
```json
{
"data":
}
```
After `0.5.2`, it could support freedom data format response as you wanted such as:
```shell
Hello World
1
...
```
If you want to switch to freedom mode, you can set the configuration in `vertx.yml` file:
```yaml
zero:
freedom: true # The default value of `freedom` is false.
```
#### 2.3.2. Logging in Zero
You can use following function in your coding to get Logger component instead of `log4j` because we have re-designed the
detail implementation of logging system.
```java
// Zero Logger initialized, connect to vert.x logging system directly but uniform managed by zero.
import io.vertx.up.log.Annal;
// Then in your class
public final class Statute {
private static final Annal LOGGER = Annal.get(Statute.class);
......
}
```
## 3. Other Information
### 3.1. Cases
> Because of Contract and Confidentiality Agreement, removed Sensitive information of customer include system name, customer name etc.
* **Deprecated**: Not Running Now
* **In Progress**: In Development or Upgraded Development
* **Running**: Running on Production Environment
| System Information |Zero Version| System Status |
|-----------------------------------|---|---------------|
| TLK Video Mobile System |0.4.6| Deprecated |
| CMDB Platform of Bank |Latest| Running |
| ITSM/ITIL Platform of Bank |Latest|Running |
| Integration of XBank |Latest| Running |
| Zero Training Demo |Latest| Running |
| Data Analyzing Exam |Latest| Running |
| Commercial Opportunity Management |Latest| Running |
| Hotel Management Platform |Latest| In Progress |
| ISO27000 Management Platform |Latest| In Progress |
| IoT Control System |Latest| In Progress |
| Medical Workflow Management |Latest | In Progress |
* From `0.8.0`, if you want to use Zero Extension of Dynamic Modeling, you need the project
of . The latest version
is `0.8.0-SNAPSHOT`, you can modify the version and rebuild it. This feature is not needed in Core Framework.
* Above issue has been fixed in `0.8.1`.
### 3.2. WeChat Group
You can send request to group leader: `445191171` to contact with the author team of zero.

## DESIGNED IN CHINA