JBoss Forge 2.0.0.Final is now available!
After two years of hard work, the Forge Team proudly presents the release of JBoss Forge 2.0.0.Final (codename Furnace).
Please let us know if you encounter any issues, or have any feedback on usability, at http://issues.jboss.org/browse/FORGE. Thank you for your patience and for all of your help! We have worked hard to make this release happen, and we are not going to stop here. We know there are still some issues to fix, and that we need to put more work into the Shell to bring it to the place where Forge 1 was, but the benefits of Forge 2 far outweigh the costs. The things that are possible with Forge 2 truly make our vision of an extendable tool, addons that share functionality a reality.
- Try out Forge 2 in Eclipse via our Update Site
- Use Forge 2 in your CLI / Terminal by downloading and installing the Final release. You can learn how to run the downloaded installation via our docs.
For those of you who want to try Forge 2 and write addons of your own, we are ready for you! Check out our documentation on addons development, and let your imagination run wild. This release marks the stable API, so you can now develop with full confidence that your addon will continue to compile as we continue to improve.
With regard to the functionality of our built-in addons, such as the Java EE and Scaffolding generation – we will be continuing to make changes and improvements in how these addons function, as well as some behavior of the shell, to attempt to make the experience as friendly as possible (there is something to be desired when compared to Forge 1).
But please go forth and Forge apps, addons, and experiements. We will be in the #forge IRC channel on irc.freenode.net, and at forge-dev@lists.jboss.org to help as much as we can. Additionally, you can check out our forums at: https://community.jboss.org/en/forge to contact us as well.
Our next goal, in addition to continuous improvement, is to bring the Forge 2 website to life so that you, our community, can share your addons and explore those of others. Work has already begun, so expect a site that is as extendable as Forge 2 itself.
What’s new and noteworthy?
- Addons: What were previously called “Plugins” in Forge 1, are now “Addons” in Forge 2. This decision was made to clear up confusing verbiage like, “Plugin X has N Plugins” (due to the org.jboss.forge.plugins.Plugin interface.) A list of addons can be found here.
- Modular Container fully rewritten: The Forge runtime (called Furnace) is now a fully functional Java module system based on JBoss Modules (The same engine behind JBoss AS 7+ and JBoss EAP). This means you may now pick-and-choose which addons are important for you.
- Smaller, leaner, and faster: Forge 2 now sports a slimmer four megabyte download size, and starts up in under three seconds. (Compared to upwards of 10+ seconds for Forge 1)
- Better IDE Integration: Forge 2 addons have been de-coupled from the command line, providing true WORA (Write Once, Run Anywhere), meaning you can create addons that run as wizards in the IDE, as well as commands in the shell – the same code works in both environments.
- A New Shell: The shell technology used in Forge 1.x was not as flexible as we needed it to be, and had some limitations that brought us to consider new options. With the help of Ståle Pedersen, Forge 2.x now uses Æsh (http://aeshell.github.io). Æsh is a Java API that provides functionality to write command-based programs in a terminal-independent manner.
- Java EE 7 Support: Forge 2.x introduces some initial support for the Java EE 7 specification. Now it is possible to configure a project to take advantage of the latest features of CDI, JSF, Servlet, JPA and so on.
- CDI 1.1 based programming: Addons take full advantage of the CDI 1.1 specification (well, not everything but enough for you to have fun writing addons)
- Test harness improved: Based on Arquillian, you can now test your addons in a real runtime environment, ensuring the same behavior as when the addons are installed into a user’s Forge. Additionally, commands and wizards may be tested using a shell-based approach, or with the CommandController APIs. (
shell-test-harness
orui-test-harness
). - Maven and Gradle integration: Forge 1.x had a strong dependency on Maven, making it harder to use another build system. Would you like to use Gradle in your next/current project? No problem! Forge 2 supports Gradle projects using the gradle addon, by Adam Wyluda, our 2013 Google Summer of Code student, who quickly exceeded all expectations. Adam still contributes to, and maintains this addon.
- Database tools: Forge 2 now provides standard functionality for generating JPA entities from existing databases, and integrates with Eclipse and JBoss Developer Studio to share connection profiles so you can re-use your existing Eclipse data-sources from Forge.
- Resource Transactions: Forge 2 now allows file and resource operations to execute under a transaction (`transaction-start`). This means that after you start a transaction, you can make changes in your project, then choose whether to commit (`transaction-commit`) them or roll them back (`transaction-rollback`). Forge 2 CLI also provides a resource change tracking mode (‘track-changes’), which will print a summary of all changes made after each command.
We’ve worked on so many features over the past two years, it’s hard to remember them all, or give them all mention, but we hope that as you explore Forge 2, you will have as much fun using it as we did creating it.
Expect more news about our website, and the Forge JBoss Tools plugin over the next few months.
- Try out Forge 2 in Eclipse via our Update Site
- Use Forge 2 in your CLI / Terminal by downloading and installing the Final release. You can learn how to run the downloaded installation via our docs.
Release Notes – 25 issues were resolved in this release. Check out all the new stuff!
Bug
- [FORGE-1508] – CommandFactory should not return UIWIzardStep implementations
- [FORGE-1526] – Scaffold setup fails with an exception
Feature Request
- [FORGE-1433] – Missing commands in Forge 2.Beta
Sub-task
- [FORGE-1399] – Cannot create a relationship between two entities
- [FORGE-1437] – project-new —type jar-resources is confusing
- [FORGE-1448] – Cannot cd an Entity with TAB completion
- [FORGE-1480] – Mulitple —value parameters for Min constraint
- [FORGE-1481] – Code completion missing for —targetPackage on java-new-enum
- [FORGE-1483] – Rename entities-from-tables command
- [FORGE-1485] – Rename —target for faces-new-validator-method command
- [FORGE-1506] – Cannot create a field on a Mapped Superclass
- [FORGE-1507] – Mapped super classes are not generated under the model package
- [FORGE-1510] – When executing jpa-setup it cd the persistence.xml
- [FORGE-1511] – Rename rest-endpoint-from-entity command
- [FORGE-1513] – persistence-unit name should not be "forge-default" but projectNamePU
- [FORGE-1514] – Command project-add-managed-dependency should be renamed
- [FORGE-1515] – Commands connection-profile-create/remove should be renamed connection-create/remove-profile
- [FORGE-1516] – On command ejb-set, —ejb should be renamed —targetEjb
- [FORGE-1517] – EJBs shouldn't be created under the model subpackage
- [FORGE-1518] – —packageName on rest-setup should be renamed to —targetPackage
- [FORGE-1519] – Template title has wrong EL
- [FORGE-1522] – View could not be restored in WildFly
- [FORGE-1527] – JSF converters shouldn't be created under the model subpackage
- [FORGE-1528] – JSF validators shouldn't be created under the model subpackage
- [FORGE-1529] – Command faces-project-stage should be renamed