🏆 Zero后端重置框架:http://www.zerows.io(新)
The CN document of
vertx-zero
has been published to: https://www.vertx-cloud.cn/document/doc-web/index.html and it's guide for developers, include zero core / zero extension / aeon framework / zero ui / zero ai etc.
JDK 17+ LTS
version, also you can set the dependency in JDK 11
.vertx-ams
into core framework, the full name is Agreed Metadata Specification, it's mini jar that could be used in different framework such as Vert.x, Spring
etc, you can refer https://www.vertx-cloud.cn/document/doc-web/index.html#_%E6%A0%87%E5%87%86%E5%8C%96 for more details of this project.io.horizon
for environment framework, it provide legacy environment support such as standard zero applications.io.macrocosm
for native cloud environment, it provide connection to K8S and Istio etc.io.modello
for modeler environment, it extends zero-atom
, support dynamic modeling and EMF ( Eclipse Modeling Framework )Fn/Ut
part and provide high order specification on JVM, it could help developers to do more safe development, such as avoid JVM Exception, logging tracing.Cc ( Cloud Cache )
architecture to move cache management into uniform interface, you can provide other distributed cache system as implementation in Zero Framework to replace critical internal cache system.Log
architecture to provide fast logging system to do module development, you can refer extension specification to do more logging implementations such as connecting ELK system.@WebSocket
annotation to support web socket features.zero-battery
to implement modularization, integrated with DevOps shell command, you can run some spec commands to do module hot deployment ( All the features will be based on OSGI specifications in future version )zero-tpl
to implement template extension such as email tpl, sms tpl, word tpl etc.Fs
implementation to process different remote store features.Job/Scheduler/Notification
system and you can use in more different business requirements.Release Version of extension, you can involve based on your requirements. (
zero-atom
Only )
infix-hed
module for developer to process HED tools.infix-mysql
module for MySQL extension of Dynamic Modeling.infix-oracle
module for Oracle extension of Dynamic Modeling. ( Because of Oracle commercial version, you can only download this project and build manually. )Aeon Framework
( Sub System ) as Native Cloud framework and it support K8S and Istio, configuration version control and switch configuration store.This is major release of Zero, wait for 1.0 in future.
Here are around 8 projects ( Include 3 products ) that are ran on Zero Framework with Extension, after all the projects delivery, I release the framework
0.8.1
version so.
Upgrade the whole zero framework to the latest version:
Environment Upgrade
Feature Upgrade
@Qualifier
annotation, use @Named
annotation instead.@Wall
( Please refer following example to check details ).
@Authenticate
@Authorized, @AuthorizedResource, @AuthorizedUser
Ux.Jooq
to call sync/async both although vertx-jooq has been upgraded to 6.3.0
./zero/health*
path, you can write your own extension to check the system status for DevOps usage.This release is big upgrade version, I have modified the whole system structure to apply new requirement in future, I'll write the upgrade guide on my wechat official account:
The @Wall
code changes, you can refer following example
package cn.vertxup.secure;
import io.vertx.core.Future;
import io.vertx.core.json.JsonObject;
import io.vertx.ext.auth.User;
import io.vertx.up.annotations.Authenticate;
import io.vertx.up.annotations.Authorized;
import io.vertx.up.annotations.AuthorizedResource;
import io.vertx.up.annotations.Wall;
import io.vertx.up.eon.em.AuthWord;
import java.util.HashSet;
import java.util.Set;
/**
* @author <a href="http://www.origin-x.cn">Lang</a>
*/
@Wall(path = "/api/jwt/*", value = "jwt")
public class JwtWall {
@Authenticate
public Future<Boolean> verify(final JsonObject data) {
System.out.println(data.encodePrettily());
return Future.succeededFuture(Boolean.TRUE);
}
@Authorized
public Future<Set<String>> authorize(final User user) {
final Set<String> item = new HashSet<>();
item.add("p1");
item.add("p2");
return Future.succeededFuture(item);
}
@AuthorizedResource(AuthWord.OR)
public Future<Set<String>> resource(final JsonObject params) {
final Set<String> item = new HashSet<>();
item.add("p1");
item.add("p3");
return Future.succeededFuture(item);
}
}
Because of my project requirement, there are some spec change points that have not been validated, but our system is running in production environment:
zero-iproxy
micro module has been re-design and modified, in future I'll support more features on k8s and connected to istio.zero-crud
is critical feature in zero extension because you will be no need to write any code ( Zero Code ) about basic CRUD operations, zero provide 15 normalized api for your system, the only configured file that you provided is as following:
{
"name": "x-category",
"table": "X_CATEGORY",
"daoCls": "cn.vertxup.ambient.domain.tables.daos.XCategoryDao",
"pojoCls": "cn.vertxup.ambient.domain.tables.pojos.XCategory",
"field": {
"unique": [
[
"code",
"type",
"sigma"
]
]
},
"transform": {
"initial": {
"type": "`${module}`",
"identifier": "`${module}`"
},
"tree": {
"in": "code"
}
},
"connect": {
"targetIndent": "identifier",
"target": {
"fm.term": {
"crud": "fm.term",
"keyJoin": "category",
"synonym": {
"type": "termType"
}
},
"fm.subject": {
"crud": "fm.subject",
"keyJoin": "category"
},
"hotel.commodity": {
"crud": "hotel.commodity",
"keyJoin": "categoryId"
},
"hotel.compensation": {
"crud": "hotel.compensation",
"keyJoin": "categoryId"
}
},
"source": {
"keyJoin": "key"
}
}
}
zero maven dependency graph is as following:
The JDK 8.0 end release Vert.x 3.9.x end release You can continue to develop this version, but because of my working part, we'll go to a new production line for future version.
New release for API modification, fix some bugs