@Path("/movies")
public interface MovieReviewService {
@POST
@Path("/{movieId}/reviews")
String submitReview( @PathParam("movieId") String movieId, Review review );
}
More than 5 years ago, in early 2015, Bob McWhirter and Ken Finnigan started a research project to answer one question: what would it take to disassemble WildFly into small pieces and package only the necessary ones, together with an application, into one uberjar. That project was called WildFly Swarm and it quickly became popular.
On this day in 2003, the Spirit rover launched from Cape Canaveral, heading over to Mars. To celebrate that memorable event, we bring you … wait for it … a new Thorntail release!
MicroProfile 3.3 support
Completely new Fault Tolerance implementation
Different treatment of empty values in Config
Keycloak 9 rebase
Component updates
A little early for the end-of-year festivities, but we still present you the best present we can: a new Thorntail release!
MicroProfile 3.2 support
WildFly 18 rebase
Red Hat Maven repository requirement
Keycloak 8 rebase
Keep smiling, because we bring you a fresh new Thorntail release right on the World Emoji Day! :-)
MicroProfile 3.0 support
MicroProfile JWT improvements
New ejb-mdb
fraction
Just in time for St. Patrick’s Day festivities, we bring you a new Thorntail release!
Java 11 support
MicroProfile 2.2 support
MicroProfile JWT improvements
Gradle improvements
Thorntail Runner improvements
It’s a new year, time for a new Thorntail release packed with features!
Upgrade to WildFly 15
Update to Java EE 8
MicroProfile 2.1 compliancy
Documentation improvements
Gradle improvements
Winter is coming, at least in the Northern Hemisphere, but we can stay warm with another Thorntail release! Say "hello" to Thorntail 2.2.1.Final!
For those of you who like to start your app from the IDE, this release brings a brand new Thorntail Runner.
To use it, just add the io.thorntail:thorntail-runner:2.2.1.Final
dependency to your pom.xml
and run the Runner
class from your IDE.
Please note that only war
packaging is supported. The Runner
class javadoc describes the available system properties to configure the execution.
This release also contains several bugfixes from different areas of the product, such as MicroProfile Config, MicroProfile RestClient or the topology-openshift
fraction.
Two new HowTos have been added: how to expose application metrics using MicroProfile Metrics and Prometheus, and how to do distributed tracing with MicroProfile OpenTracing and Jaeger.
There were other improvements around dependencies in some fractions.
Coming through! Make way for Thorntail 2.2.0.Final!
This release contains a bunch of bugfixes focused mainly around MicroProfile.
Metrics, JWT, OpenAPI and OpenTracing have all gotten their share of love.
MicroProfile RestClient is now in supported profile and we have looked into the Swarm main()
in IDE.
We also updated the log message codes to reflect the recent project name change.
On this day in 1896 Gold was first discovered in Klondike, found at Bonanza Creek, Alaska by George Carmack.
And now 122 years later, 2.1.0.Final is released!
MicroProfile 1.3 with SmallRye
Automated migration from WildFly Swarm
OpenTracing and Jaeger changes
New JOSE fraction
Old config-api-runtime
fixed
Consul update
The new name of WildFly Swarm is Thorntail! Enjoy the freedom of flying high like a Thorntail bird!
Did we say we have a new name? Thorntail!
Migration Tips
CDI Interceptor support for MicroProfile REST Client
This May be a good release, but you can be the judge of that!
Eclipse MicroProfile fixes and improvements
Update fractions to match WildFly 11 configuration
Beware the Ides of April, and a failed release attempt! But we got there!
JAX-RS Application
is no longer generated by default (breaking change)
MicroProfile "JPA" Hollow JAR
Many MicroProfile related improvements
Enhanced Swagger integration
Improved KeyCloak integration
Lots of other fixes!
Beware the Ides of March, and many failed release attempts! But we got there!
MicroProfile Open API
"Web" Hollow jar
MVC (Ozark) Fraction
Lots of other fixes!
Roman superstition and Math led to the situation that February only has 28 days. We obey to this fact and hence our changelog is bit shorter than usual. Nevertheless, this release is crafted with love - as always.
The Eclipse Microprofile Rest Client provides a type-safe approach to invoke rest services, i.e. first we define a Java interface
@Path("/movies")
public interface MovieReviewService {
@POST
@Path("/{movieId}/reviews")
String submitReview( @PathParam("movieId") String movieId, Review review );
}
Now we can use this interface as a means to invoke the actual remote review service like this:
String apiUrl = "http://localhost:9080/movieReviewService";
MovieReviewService reviewSvc = RestClientBuilder.newBuilder()
.baseUrl(apiUrl)
.build(MovieReviewService.class);
Review review = new Review(3 /* stars */, "This was a delightful comedy, but not terribly realistic.");
reviewSvc.submitReview( movieId, review );
Ringing in the New Year with some minor fixes!
Eclipse MicroProfile updates
Keycloak Server fixed
JPA ignoring JNDI name for DataSource
Seasons greetings and Happy Holidays to all!
In the spirit of celebration, we’ve got a bumper 2017.12.1 release for, so much so that we couldn’t just leave it at 2017.12.0!
Upgrade to WildFly 11.0.0.Final
Upgrade to Keycloak 3.4.0.Final
Eclipse MicroProfile 1.2 implementation
Reduction in uber jar size with CDI
Internal Fractions removed from BOMs
In Indiana, November is the month where your chances of having a car accident with a deer increase. It’s also the month where you can enjoy WildFly Swarm 2017.11.0.
Mostly documentation, which has moved to http://docs.wildfly-swarm.io/2017.11.0.
October, better known as Pickled Peppers Month, sees the release of WildFly Swarm v2017.10.0.
Not a whole lot.
"air gap" Maven repositories
What a strange release number. Indeed.
We’ve been struck by some weird release problems, which forced us to burn a number of versions (x.9.0-x.9.3). If you care about the details, here’s a description of the issue we ran into: https://issues.sonatype.org/browse/NEXUS-9138
Topology.js Changes
Gradle enhancements
Consul Fixes and enhancements
Assorted minor bugfixes
On this day in 1914, the first steamer passed through the Panama Canal. Cool, eh?
On this day in 2017, we’re pleased to announce the 2017.8.1 release of WildFly Swarm.
AsciiDoctorJ
Jaeger & OpenTracing
Bug fixes
In 1405 Chinese fleet commander Zheng He set sail to explore the world for the first time!
2017.7.0 is your chance to explore WildFly Swarm for the first time, or explore it anew with fresh eyes!
YAML, YAML, and more YAML!
Temp File location
Component upgrades
Gradle updates
"Anyone who has never made a mistake has never tried anything new." (Albert Einstein)
Albert is right. We tried something new. It broke the dependency management, so we changed it again. For the better. This is the short story of why we have 2017.6.1.
SWARM-1369 caused trouble with project dependencies.
In honor of National Doughnut Day, sink your teeth into the 2017.6.0 release of WildFly Swarm.
More YAML less main()
Update to WF Camel 4.7.0
WildFly Swarm is the decomposition and reconstitution of the popular WildFly Java Application Server in order to support just enough appserver for microservice type applications.
Each portion of the appserver is referred to as a fraction, which many times
maps to a subsystem
from WildFly, but also may include other discrete chunks
of non-Java EE or WildFly functionality, such as Swagger, or Jolokia.
To celebrate May Day, we’re going to work 8 hours today and give you the 2017.5.0 release of WildFly Swarm.
We’ve fixed, we hope, for the last time, loading of project-
with
correct precedence, plus the ability to specify the current stage(s) through either
the -S
command-line argument or through the -Dswarm.config.stage
property.
Additionally, we should support both the previous .yml
extension and the seemingly
more correct .yaml
extension. Unless you’re on DOS 3.1. Then you’re still limited
to 8.3 naming, of course.
We’ve attempted to improve the auto-detection of required fractions, accounting
for javax.security
and persistence.xml
among other things.
We’ve enhanced the list of detected JDBC drivers that WildFly Swarm can wire up for you now, to include:
PrestoDB
MariaDB
Derby
Hive2
Teiid
WildFly Swarm is the decomposition and reconstitution of the popular WildFly Java Application Server in order to support just enough appserver for microservice type applications.
Each portion of the appserver is referred to as a fraction, which many times
maps to a subsystem
from WildFly, but also may include other discrete chunks
of non-Java EE or WildFly functionality, such as Swagger, or Jolokia.
JBoss EAP 7.0 quickstarts is a set of example applications demonstrating various aspects of JBoss EAP 7.0. In this post, similarly to the previous post on running Java EE 7 Samples, we’ll examine how to run JBoss EAP 7.0 quickstarts with WildFly Swarm.
April showers bring May flowers. Mayflowers bring pilgrims to the New World. Oh, and April also gives you 2017.4.0 of WildFly Swarm.
We now have a fully-configurable Teiid fraction.
We’ve figured out a few more edge-cases of autodetecting fractions.
When building WildFly Swarm from source, significantly fewer warnings and errors should appear.
WildFly Swarm is the decomposition and reconstitution of the popular WildFly Java Application Server in order to support just enough appserver for microservice type applications.
Each portion of the appserver is referred to as a fraction, which many times
maps to a subsystem
from WildFly, but also may include other discrete chunks
of non-Java EE or WildFly functionality, such as Swagger, or Jolokia.
Since it’s good to beware the ides of March, we’re releasing 2017.3.3 a few days prior to it. Et tu, Brute?
Health API Changes (breaking)
Fixing logging bugs introduced in 2017.3.2
WildFly Swarm is the decomposition and reconstitution of the popular WildFly Java Application Server in order to support just enough appserver for microservice type applications.
Each portion of the appserver is referred to as a fraction, which many times
maps to a subsystem
from WildFly, but also may include other discrete chunks
of non-Java EE or WildFly functionality, such as Swagger, or Jolokia.
After a series of unfortunate weather events in which versions 2017.3.0 and 2017.3.1 met their early demise, we’re proud to announce version 2017.3.2.
Keycloak Updates
Logging noise
Auto Detection improvements
Performance improvements
OpenTracing support
Dependency Management
WildFly Swarm is the decomposition and reconstitution of the popular WildFly Java Application Server in order to support just enough appserver for microservice type applications.
Each portion of the appserver is referred to as a fraction, which many times
maps to a subsystem
from WildFly, but also may include other discrete chunks
of non-Java EE or WildFly functionality, such as Swagger, or Jolokia.
The Java EE 7 Samples project contains a set of example applications demonstrating various aspects of Java EE 7. A lot of these applications also contain automated tests. These are built using Arquillian and are currently set up for running with WildFly, GlassFish, Tomcat (just a subset), TomEE, WebSphere Liberty and WebLogic.
In this post, let’s examine how to run Java EE 7 Samples tests with WildFly Swarm!
To spread the love for Valentine’s Day, we’re happy to announce version 2017.2.0 of WildFly Swarm!
New docs and config visibility
@DefaultDeployment
defaults to WAR
Fraction auto detection for Arquillian
Update to Keycloak 2.5.0.Final
WildFly Swarm is the decomposition and reconstitution of the popular WildFly Java Application Server in order to support just enough appserver for microservice type applications.
Each portion of the appserver is referred to as a fraction, which many times
maps to a subsystem
from WildFly, but also may include other discrete chunks
of non-Java EE or WildFly functionality, such as Swagger, or Jolokia.
To celebrate National Braille Literacy Month, we’re happy to announce version 2017.1.1 of WildFly Swarm!
@Service and ServiceClient package change
Lots of bugfixes
Start of a HOWTO
WildFly Swarm is the decomposition and reconstitution of the popular WildFly Java Application Server in order to support just enough appserver for microservice type applications.
Each portion of the appserver is referred to as a fraction, which many times
maps to a subsystem
from WildFly, but also may include other discrete chunks
of non-Java EE or WildFly functionality, such as Swagger, or Jolokia.
To memorialize the passing of Alan Thicke, we are performing a mid-month release of version 2016.12.1
Improvements on UberJar constructions and .war cleaning
Improvements on fraction auto-detection
Safely not enabling HTTP2 if no ciphers are strong enough
Support
in custom module.xml
Fewer boot-time meaningless warnings
Significantly better Windows support
JavaDocs!
WildFly Swarm is the decomposition and reconstitution of the popular WildFly Java Application Server in order to support just enough appserver for microservice type applications.
Each portion of the appserver is referred to as a fraction, which many times
maps to a subsystem
from WildFly, but also may include other discrete chunks
of non-Java EE or WildFly functionality, such as Swagger, or Jolokia.
With most things in life we have choices, sometimes a few and sometimes many.
When it comes to WildFly Swarm projects with Maven the two choices are
war
or jar
packaging.
Each has different benefits and tradeoffs which we will discuss during this article. By the end I hope it’s clearer as to the best situations to utilize either packaging type.
Since December 14th is Monkey Day (look it up!), we’re shipping WildFly Swarm 2016.12.0 with a side-dish of bananas. Bananas.
More configurability
Bring-You-Own JDBC driver
Improvements to the health/monitoring
Improvements to OpenShift support
Fluentd logging support
WildFly Swarm is the decomposition and reconstitution of the popular WildFly Java Application Server in order to support just enough appserver for microservice type applications.
Each portion of the appserver is referred to as a fraction, which many times
maps to a subsystem
from WildFly, but also may include other discrete chunks
of non-Java EE or WildFly functionality, such as Swagger, or Jolokia.
Celebrating National Pepper Month, at least for some nations, we’re happy to announce the release of WildFly Swarm version 2016.11.0.
Enhanced JAX-RS client library
Support for Flyway schema migration for relational databases
Improved Arquillian testing (still in progress)
WildFly Swarm is the decomposition and reconstitution of the popular WildFly Java Application Server in order to support just enough appserver for microservice type applications.
Each portion of the appserver is referred to as a fraction, which many times
maps to a subsystem
from WildFly, but also may include other discrete chunks
of non-Java EE or WIldFly functionality, such as Swagger, Jolokia or NetflixOSS Ribbon.
October, which comes from the Latin of "octo" meaning 8, is obviously the 10th month. We can thank Julius and Augustus Caesar (July and August, respectively) for giving us a persistent off-by-two error in how we count months.
Nonetheless, it’s time for another WildFly Swarm release. Enjoy!
External ActiveMQ/Artemis broker configuration is simplified.
Better SAAJ support.
Arquillian supporting Maven profiles.
Service/Topology advertisements via API and annotations.
Jolokia upgrade and support for jolokia-access.xml
Much much more!
WildFly Swarm is the decomposition and reconstitution of the popular WildFly Java Application Server in order to support just enough appserver for microservice type applications.
Each portion of the appserver is referred to as a fraction, which many times
maps to a subsystem
from WildFly, but also may include other discrete chunks
of non-Java EE or WIldFly functionality, such as Swagger, Jolokia or NetflixOSS Ribbon.
MicroProfile is a new initiative in the Enterprise Java community to foster rapid innovation around Microservices and Enterprise Java. A MicroProfile 1.0 will be announced next week at JavaOne, which contains CDI, JAX-RS and JSON-P. For the first release what is present was deliberately kept small. Going beyond 1.0 the community will provide valuable ideas and feedback on both the types of technology that should be included within the MicroProfile, as well as concepts, such as Service Discovery, that should be addressed.
Though MicroProfile focuses on Java EE specifications for 1.0, Java EE is not a requirement for what is produced from the MicroProfile. There will likely be non Java EE frameworks and libraries that the community wishes to include to solve various use cases related to Microservices.
If you’d like to voice your opinions and participate in the community check out the discussions in the Google Group.
Continuing our trend of monthly releases, as discussed on the Google Group, we’re pleased to release 2016.9, celebrating September, a month never mentioned by Shakespeare in any of his plays.
WildFly 10.1.0.Final
Continued MicroProfile support
Cleaner WEB-INF/lib
Hollow Uberjars
WildFly Swarm is the decomposition and reconstitution of the popular WildFly Java Application Server in order to support just enough appserver for microservice type applications.
Each portion of the appserver is referred to as a fraction, which many times
maps to a subsystem
from WildFly, but also may include other discrete chunks
of non-Java EE or WIldFly functionality, such as Swagger, Jolokia or NetflixOSS Ribbon.
Yes, we’ve released August.1! There was a discussion on our Google Group about six weeks ago regarding release naming, and here we are releasing the first in the line of that new naming.
And yes, there was a problem with the original 2016.8, hence 2016.8.1!
Going forward we will be doing releases by month, unless we deem a month unworthy of a release.
With this release we’ve introduced multiple BOMs to signify maturity of the various parts. See the section on Fraction Stability indicator for further details.
And the JBoss Forge WildFly Swarm addon is also updated, so feel free to give it a try!
MicroProfile
Driver and Datasource handling
CDI Configuration injection
Fraction authoring changes
Arquillian Testing changes
Fraction Stability indicator
GitHub reorganization
Bugfixes
WildFly Swarm is the decomposition and reconstitution of the popular WildFly Java Application Server in order to support just enough appserver for microservice type applications.
Each portion of the appserver is referred to as a fraction, which many times
maps to a subsystem
from WildFly, but also may include other discrete chunks
of non-Java EE or WIldFly functionality, such as Swagger, Jolokia or NetflixOSS Ribbon.
WildFly Swarm is the decomposition and reconstitution of the popular WildFly Java Application Server in order to support just enough app-server for microservice type applications.
Each portion of the app-server is referred to as a fraction, which many times
maps to a subsystem
from WildFly, but also may include other discrete chunks
of functionality, such as Swagger, Jolokia or NetflixOSS Ribbon.
A few bugfixes.
Update Camel fraction
Welcome Yoshimasa Tanabe (emag) as project committer
Arquillian Testing improvement
Logging enhancements
Drools KIE Server
Vert.x
Tutorial: Monolith to microservices
CLI Support
Enhanced standalone.xml
support
SwarmTool
Resource Adapter archives
JPA fraction with PostgreSQL
Examples with WildFly Camel
Datasource configuration settable by properties
HTTP port blocks until deployment is finished
Support for external, environment specific properties
Support for @ConfigValue injection in CDI contexts
Support for expressions in config API (i..e ${database.connection.url})
Introduce a MySQL JPA fraction
Some new fractions
Hibernate Search
JAX-RS Validator
HTTP endpoints are not reachable until a deployment is complete
Static content can be updated in a running instance
Removed our custom JAX-RS exception mapper for favicon.ico
and replaced it with an Undertow handler
Numerous fixes for Ribbon, Hystrix and their examples
Ability to provide a Hystrix Events Stream from your application
We now publish consolidated javadocs
Continuing in our trend of announcing versions that are arbitrarily larger than our last release, we’re happy to announce 1.0.0.Beta6.
As usual, beware the Ides of March.
As noted previously, we’ve broken the codebase into discrete chunks, each with its own release cycle. This release represents a released version of the aggregating BOM, which encompasses all of the various released components.
After some hearty discussion at our face-to-face meeting in Newcastle, UK, along with continuing that discussion on our Google Group, we’ve decided to split apart our monolithic repository into reasonable slices.
Part of the motivation for this split is related to how we version things. Since
WildFly Swarm is a fairly quickly-moving project, at least in the near term,
there would always be some components in alpha
or beta
phase, preventing
the entirety from being released as final
. Especially given that WildFly Swarm
is an integration project, the upstream components we integrate with all have
varying release schedules, and timing a collective release can be difficult.
To that end, each of the repositories below is roughly linked with its upstream components and can produce independently-versioned bits of WildFly Swarm. Now, a release of WildFly Swarm will actually be composed of a matrix of releases of the various sub-components, not necessarily matching in version numbering.
Since a multitude of versions can certainly make life more difficult for consumers, we’ve added a BOM strategy (see Practical Changes below).
With the release of 1.0.0-Alpha8, WildFly Swarm has introduced support for Swagger, a simple but powerful JSON representation of your REST APIs.
In simple terms, Swagger is a JSON representation of a RESTful API,
typically made available over HTTP at /swagger.json
. This JSON
document contains information about your APIs, including names, paths,
endpoints, parameters, descriptions, keywords, expected responses, and
more.
Per the Open API Specification, the goal of Swagger is to "define a standard, language-agnostic interface to REST APIs which allows both humans and computers to discover and understand the capabilities of the service without access to source code, documentation, or through network traffic inspection".
If this is your first encounter with Swagger, I suggest you head on over to the Swagger website to learn more about Swagger itself, and what it can do for you.
There’s slightly less stuf in this release since 1.0.0.Alpha6, but then again, it marks our new trend of fortnightly releases.
Based upon WildFly 10.0.0.Final
Declarative Configuration (standalone.xml
)
Swagger UI
Generalize service-discovery topology SPI
Service-discovery via Consul
Container.createDefaultDeployment()
is now public, and can be used
from your custom main()
as a basis for a custom deployment.
Update Keycloak to 1.8.0.Final
The common and only way to configure wildfly-swarm nodes was to use the Java API. With the inclusion of SWARM-14, external, declarative configuration of wildfly-swarm nodes becomes possible.
WildFly Swarm is the decomposition and reconstitution of the popular WildFly Java Application Server in order to support just enough app-server for microservice type applications.
Each portion of the app-server is referred to as a fraction, which many times
maps to a subsystem
from WildFly, but also may include other discrete chunks
of functionality, such as Swagger, Jolokia or NetflixOSS Ribbon.