Quarkus Live Coding and Continous Testing with Lambda

Leave a comment

Last week I merged Quarkus Live Coding and Continuous Testing support for Lambda and it will be available in Quarkus 2.3. I’m excited to see how its received by the Quarkus community. The PR allows you to run in Quarkus Dev or Test mode all locally within a mock Lambda environment automatically set up by the Quarkus build and runtime. This works when writing raw lambdas, with Quarkus’s Lambda + HTTP support, as well as with Funqy and Lambda. For all these integration points with Lambda, Quarkus provides an HTTP server that you can invoke on with Curl manually, or via Rest Assured or another HTTP client if you’re writing tests.

To completely understand what is going on here and how it works, I need to explain a little bit how Lambda’s work in general. Lambda’s (at least Java Lambdas) do not receive or process requests directly. Instead, an AWS Lambda event server is polled by your Lambda deployment for new requests that need to be processed. The AWS Lambda Java runtime has this poll loop built in. For native binary deployments with Graal VM, Quarkus re-implemented this poll loop itself.

The new Quarkus Live Coding and Continuous Testing support I merged has a new Mock Event Server that simulates the AWS Lambda event server. When running in Dev or Test mode, Quarkus boots up this Mock Event Server and runs your Lambda’s within the Quarkus poll loop. The Mock Event Server starts an HTTP server under port 8080 in Dev mode and port 8081 in Test mode. You can send requests to the event server with any HTTP client at http://localhost:8080 and http://localhost:8081 respectively. The payload of the request is sent as a Lambda event and is picked up by the poll loop and sent to your lambda code.

For Quarkus’s Lambda + HTTP support, the same Mock Event Server is started as well. In this case the Mock Event Server looks like a normal HTTP server to the client, but under the covers it automatically converts HTTP requests to the JSON HTTP event payload that the AWS API Gateway uses. If you want to send raw API Gateway HTTP events, you can by posting to http://localhost:8080/_lambda_ or http://localhost:8081/_lambda_ depending on whether you are in dev or test mode. Sending raw API Gateway HTTP events is a great way to test AWS security locally.

Anyways, I hope you all like this support. I’m very curious how what I’ve done compares to running locally with SAM CLI. Is it better? Worse? Needs a few more tweaks? Hope to hear from you soon.

HTTP Quote of the day

Leave a comment

“T]hose who do not understand HTTP are doomed to re-implement it on top of itself

I wonder how many of us have done this?  I know I did a few times when I first started writing REST-based services.

Keycloak 1.1.0.Beta2 Released: Adapters, Proxy, Wildfly Subsystem

Leave a comment

A lot of new features this release.

  • Tomcat 6, 7, and 8 adapters
  • Jetty 8.1, 9.1, and 9.2 adapters
  • HTTP Security Proxy for platforms that don’t have an adapter based on Undertow.
  • Wildfly subsystem for auth server.  Allows you to run keycloak in domain mode to make it easier to run in a cluster.

Hope to do 1.1.0.Final sometime end of January.  See http://keycloak.org for more details.

Keycloak Alpha 2 Released

Leave a comment

Check out the new Keycloak Blog for details.

Apple innovations I’d like to see

Leave a comment

  • Waterproof iPhone.  Lost 2 iphones last year to water damage.  Got so pissed I switch to the Galaxy 4 to get waterproof phone.  Android was a piece of shit, I couldn’t get used to it.  After 2 months I went back to the iphone.  (The form factor of the Galaxy 4 is kinda cheap too, but that wasn’t why I went back).
  • Bigger iPhone display.  Only thing I liked about the Galaxy 4.
  • Solar paneled iPhone.  Never got this iphone accessory, but I thought it was way cool.  Seems that Apple might think a solar power iphone would be cool too.
  • iCar.  I’ve owned some nice cars since the acquisition.  Still, I think their functions are weak.  I’d like to be able to plug my iphone into the car’s USB port and have it drive all display functions in the car.  I’d like to be able to use SIRI from my steering wheel.

What I don’t care about is:  iWatch, watches are so 1900’s.  iGlasses, WTF is google thinking?  iTV, I own a smart TV, still haven’t used any of its features.


Lost all respect for Sacha

1 Comment

Lost all respect for Sacha

Sacha, you are so terrific.

Resteasy 3.0-beta-6 Released – Closer to Compliance

Leave a comment

A lot of fixes and changes as a result of trying to pass the JAX-RS 2.0 TCK.  Specifically, the TCK has become really strict.  Especially with the request matching algorithm which I talk about in this blog:


There were also some grey areas of the specification that the TCK now tests for.  Resteasy passed some, didn’t pass others, but at least now its consistent.  Also, I was going to write a ton of unit tests for the new client, filter, interceptor, and async apis, but the TCK already does a tremendous job in doing this.  I think you’ll see a great improvement in overall quality for the Resteasy 3.0-beta-6 release.

We still have about 2% of the tests failing due to challenges or bugs in the TCK.  Hopefully we’ll get those resolved soon and we can ship Resteasy 3.0 within the next month.

You know where to find everything!  http://jboss.org/resteasy

No 17″ Macbook means I need a different brand


My Macbook Pro 17″ is about 3+ years old and I had great anticipation for WWDC today.  Boy was I disappointed!  No more 17″ Macbook Pro!  17″ is a must for me and their graphics card (as usual) is middle of the road.  The big thing is the Retina display, but you may not be able to see a difference.  I’m actually kind of really pissed off.  So much so, it may be time to ditch Apple.  The only things that may keep me are:

  • High quality product and high quality support.  Apple is 2nd to none in both of those categories (at least in my experience).  I’m willing to pay big bucks for both of these things if they are a reality.
  • Commercial Unix.  The High quality product/support combined with  a unix-based laptop.
  • No-thought/knowledge-required Windows dual-boot (Bootcamp).
  • The awesome touchpad
  • Automatic iphone sync/backup

I’m looking for a gaming laptop alternative, please offer recommendations!

If I have to go back to Windblows, its got to be with a kick-ass gaming laptop.  I took this route back in 2006 and purchased an Alienware beast of a laptop.  I returned the initial shipment because it was not assembled correctly (hard drive wasn’t fully connected) and just broken in general as well.  Got a replacement, but that died in less than 1 year.  I tried to get help from Alienware to fix it (my warranty was still valid), but gave up after 1-2 weeks of getting the run-around from their support.  Bought a Macbook and have been happy every since, until today…Before 2006 it was also an endless string of crappy Dell notebooks.

Can anybody recommend a kick-ass 17″+ gaming notebook that they have bought in the past year that wasn’t broken when you got it and doesn’t have horrible support and is decent quality?  Maybe Alienware has improved?  Asus? Hp Envy?  Its hard to tell who is a good company and who isn’t when dealing with these high-end laptops.  I’ve spent a few hours searching and reading, but can’t really get anything definitive on quality of product/support.

Solar Powered iPhone

Leave a comment

This has got to be the coolest mobile phone accessory ever



Resteasy 2.3-Beta-1 Released


I don’t usually make a lot of noise about a beta release, but there’s some new security features I’d like everybody to test drive (along with a bunch of bug fixes).  Also, there’s a few backward incompatibilities to be aware of.  New features?

  • SMIME integration.  You can now send/receive SMIME encrypted and/or signed messages over HTTP.  This is great if you have the requirement of encrypting message bodies.
  • Subresource locator support for client proxy framework. Thanks Peter Murray for this!
  • Jackson 1.8.5 upgrade

As always, to download and see documentation follow the links from our website.  Take a look at our Jira release notes.  You might also want to check out the Migration guide to view what has broken as far as backward compatibility.

Older Entries

%d bloggers like this: