Skip to content

Releases: silentbalanceyh/vertx-zero

0.9.0 RELEASE

02 May 11:02
Compare
Choose a tag to compare

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.

  1. The JDK has been upgraded to JDK 17+ LTS version, also you can set the dependency in JDK 11.
  2. Upgrade all the dependency lib ( jars ) to the latest version, the dependency graph has been re-designed.
  3. Data Driven / Config Driven framework have been passed in 7 production cases.
  4. Digitization Service specification have been involved include maturity evaluation on your Company / Team etc.

Zero Framework

  1. Added new project named 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.
  2. Split the core library into three directions:
    1. io.horizon for environment framework, it provide legacy environment support such as standard zero applications.
    2. io.macrocosm for native cloud environment, it provide connection to K8S and Istio etc.
    3. io.modello for modeler environment, it extends zero-atom, support dynamic modeling and EMF ( Eclipse Modeling Framework )
  3. Re-designed 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.
  4. Re-designed 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.
  5. Re-designed 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.
  6. Added modeling checking framework to validate model configurations.
  7. Faster arithmetic for JVM & SPI, involve google guice as IoC containers.
  8. Added @WebSocket annotation to support web socket features.

Zero Extension

  1. Add 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 )
  2. Add zero-tpl to implement template extension such as email tpl, sms tpl, word tpl etc.
  3. Explored more features in Camunda Workflow Engine, support different assignment way to do some local requirements.
  4. CMDB dynamic modeling feature.
  5. ISO27001 interface re-designed, added more standard workflow of ISO.
  6. Development Center has been designed and will be published in Zero Ui
  7. IOT interface re-designed and all the features could be integrated with embedded system.
  8. Add Git Repo client to do configuration version control as 2nd configuration storage.
  9. Add document management for enterprise network document storage ( include OA documents, KB etc ).
  10. Add FTP client to switch all the file storage, you can provide Fs implementation to process different remote store features.
  11. Update Job/Scheduler/Notification system and you can use in more different business requirements.

zero-vista module

Release Version of extension, you can involve based on your requirements. ( zero-atom Only )

  1. Added infix-hed module for developer to process HED tools.
  2. Added infix-mysql module for MySQL extension of Dynamic Modeling.
  3. Added infix-oracle module for Oracle extension of Dynamic Modeling. ( Because of Oracle commercial version, you can only download this project and build manually. )

Aeon Subsystem

  1. Designed Aeon Framework ( Sub System ) as Native Cloud framework and it support K8S and Istio, configuration version control and switch configuration store.
  2. Aeon framework provide the system module to connect different K8S cluster and integrated with native cloud environment, zero could help you to manage multi Tenants / Apps / Languages.
  3. Support terraform tools for cloud environment and ansible for one-click deployment.
  4. Involve new Design for OSGI Framework as "Module System" to set extension of zero modules, you can typing DevOps command to activate the module in dynamic way.

This is major release of Zero, wait for 1.0 in future.

0.8.1 Release

28 Feb 14:55
d8e6a1c
Compare
Choose a tag to compare
  • Involve Camunda Workflow Engine for Enterprise Workflow Development, the oob contains 8 standard workflow.
  • Designed PSI system for Purchase, Sales, Inventory operations, it could help your do more enterprise asset management.
  • Add new module for integration service include FTP, Email, SMS part.
  • Split Admin / Development in Frontend, this is Extension Framework to support Low Coding / Zero Coding based on configuration data and rule data, it provide more toolkit to implement this feature on project.
  • Involve ISO27000 / ITSM / CMDB designed workflow and modules to Extension Framework.

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.

0.7.0 Release

06 Oct 01:00
Compare
Choose a tag to compare

Upgrade the whole zero framework to the latest version:

Environment Upgrade

  • JDK: 11+
  • jooq: From 3.10.x to 3.15.3 ( The latest )
  • vertx: From 3.9.9 to 4.1.x ( The latest )
  • vertx-jooq: From 2.4.1 to 6.3.0 ( The latest )

Feature Upgrade

  • Class scanner has been changed to google guava instead of the old one.
  • JSR330/JSR299 dependency injection feature has been implemented based on google guice, remove the old @Qualifier annotation, use @Named annotation instead.
  • Add standard authorization/authenticate feature support ( Basic, Jwt, OAuth2, Digest ) based on vert.x 4.x, the jwt token feature has been replaced by new version.
  • Add new annotation that has replaced the old @Wall( Please refer following example to check details ).
    • For 401: @Authenticate
    • For 403: @Authorized, @AuthorizedResource, @AuthorizedUser
  • Add sync channel to implement Jooq Sync API instead of async API only ( 3.15.3 ) for old system, it means that you could still write Ux.Jooq to call sync/async both although vertx-jooq has been upgraded to 6.3.0.
  • Add AOP aspectJ for Redis cache instead of memory cache only, you wan set Redis as session store component.
  • Add health checking feature on /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:

image

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:

  • Add Finance Management Module ( zero-fm ) in zero extension.
  • Add LBS Management Module ( zero-lbs ) in zero extension.
  • Create the script to build k8s environment, the old zero-iproxy micro module has been re-design and modified, in future I'll support more features on k8s and connected to istio.
  • The CRUD engine ( zero-crud ) has been upgraded to support following features:
    • Support crossing table CRUD, you can configure more than one table.
    • Support Global view/Personal view feature on list page, there will be a new feature View Management for most system usage.
    • Support Tenant feature when you do some data loading/exporting and others.

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:

vertx-up

0.6.2 End Version

06 Oct 00:18
f2c9e21
Compare
Choose a tag to compare

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.

0.6.1 Release

03 Aug 03:18
562ed78
Compare
Choose a tag to compare

New release for API modification, fix some bugs