BloxBean launches two new tools for Java developers building dApps
BloxBean & Aion4j
The BloxBean project is directly aimed at providing Aion Virtual Machine (AVM) support for existing development tools and frameworks to achieve the following goals:
- Help on-board non-blockchain developers to the smart contract world via straightforward development tools
- Increase the productivity and confidence of smart contract developers
- Leverage and integrate with existing and familiar development processes instead of introducing drastically different flows i.e. you can use established Java processes such as unit and integration testing, CI, CD, etc.
By supporting Java, AVM has already opened the possibilities of using established development tools in the Java ecosystem instead of re-inventing the wheel. In the first release, BloxBean consists of the Aion4j suite of tools:
While Aion4j Maven Plugin provides the command line development tools for AVM, Aion4j Idea Plugin makes those commands easy to use by integrating them directly inside of the development IDE.
Suppport for Maven
Maven is a popular build automation tool used primarily for Java projects.
Maven’s primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. Most of the modern Java IDEs have in-built support for Maven. So a developer can use any Java IDE to work with a Maven-based project.
Aion4j Maven Plugin is a plugin which aims to provide end-to-end tooling support for smart contract development in Java. These smart contracts are executed on AVM via both an embedded AVM and an AVM running in a remote Aion kernel.
Some of the key features supported by this plugin are :
> Maven based AVM project creation using maven archetype.
> Compile & Package
> Unit Test
> Deployment, test and debug on an embedded AVM during development
> Deployment and test on remote Aion Kernel or hosted service like Nodesmith
> Interact with Aion blockchain through maven commands(deploy, get balance, get receipt, call, contract transaction, transfer, get logs …)
> Client side transaction signing
> many more …
The AVM archetype is a template project that developers can build on top of when creating their own project. It comes with a HelloWorld.java contract and test. The goal is to provide a standard project structure which serves as a starting point for the new smart contract developer. The Aion4j Maven Plugin generates projects based on this template.
IDEA Plugin (IntelliJ Plugin)
Developers spend the majority of their development time within the IDE, making this tool a core piece of the end-to-end development lifecycle. Aion4j provides smart contract development support for JetBrain’s IntelliJ IDE, which is one of the most popular in the Java community.
To make a developer’s life simple, it provides an Embedded AVM execution environment inside the IDE, which allows the developer to deploy and test smart contracts throughout development. Apart from simply installing the plugin on from the IntelliJ IDEA marketplace, developers do not need to install/download any other software to write and test smart contract on an Embedded AVM.
Additionally, this plugin supports interacting with a remote Aion kernel straight from the IDE, so developers can deploy, test, and interact with their smart contracts without ever leaving their IDE during the entire smart contract development process. It also provides few editor level features such as “JCL whitelist check” where the editor warns the developer when trying to use restricted or non-allowed Java APIs in the smart contract code. Similarly, the “ABI type check” feature warns developers if any non-allowed data type is used as a parameter or return type in a callable method.
The Aion4j Maven Plugin does most of the heavy lifting of interactions with the blockchain and the Aion4j Idea Plugin makes those functionalities easily accessible from IDE. So try out these tools and we would love to hear your feedback and suggestions.
Also if you like building developer tools, you may want to contribute to these open-source projects and help in the adoption process.
This is just the beginning of the tooling story for AVM …
- Aion Virtual Machine (https://github.com/aionnetwork/AVM)
- Aion Docs: https://docs.aion.network/docs/maven-and-aion4j
- BloxBean Website (http://www.bloxbean.com/)
- Aion4j Maven Plugin (https://github.com/bloxbean/aion4j-maven-plugin)
- Aion4j Idea Plugin (https://github.com/bloxbean/aion4j-idea-plugin)
- Avm Archetype (https://github.com/bloxbean/avm-archetype)
BloxBean launches two new tools for Java developers building dApps was originally published in Aion on Medium, where people are continuing the conversation by highlighting and responding to this story.