Showing posts with label javaee. Show all posts
Showing posts with label javaee. Show all posts

Tuesday, September 18, 2018

Java EE CTS goes open source!

Java EE CTS stands for Java EE Compatibility Test Suite. It's the proprietary testsuite developed initially by Sun and later by Oracle that can be used to verify that a Java EE implementation is indeed compatible. Or else, it's a huge testsuite that has been enhanced over the years to ensure compliance with the latest Java EE specifications. It tests both individual APIs, as well as the platform and the provided configuration profiles (Full and Web) as a whole. For Java EE 8 the CTS contains more than 44k tests and that doesn't include some individual Test Compatibility Kits (TCKs) for a couple of specifications that were open source from the start, like CDI and Bean Validation.

Up until now getting access to the CTS involved negotiating a license with Sun/Oracle. I remember the early JBoss days and how we were (I believe) the first open source Java EE implementation that got access to the CTS in exchange of a seven figure dollar amount, which was a lot of money back then and it only became possible because JBoss had just received funding from a Venture Capital. As an open source project and without proper funding we wouldn't have any chance of getting to it.

But that was the past. As of Sep 14, 2018 you may just as well access the CTS here:

https://github.com/eclipse-ee4j/jakartaee-tck

The Java EE CTS is on it's way to be transformed into the Jakarta EE 8 CTS. The initial code drop has been done and there is some IP checking to be completed while some further massaging of the code is necessary before it can be called Jakarta EE 8 CTS. But we are not far from that milestone and that would get us a step closer into the re-incarnation of Java EE as Jakarta EE. (BTW, you can check the overall project status here).

The CTS holds a special place in my heart because that was the first (surprise!) project I was asked to work on when I was hired by JBoss back in 2004. I was a volunteer committer on JBoss when I've got the call by Mark Fleury to join the company. (For more details, check out this blog entry.) I was told I would work on "Core Development" but no one told me on what exactly. As soon as I started, Sacha Labourey (now CEO at CloudBees) broke the news to me: my first major assignment would be to help complete J2EE 1.4 certification for JBoss 4.0.

The core development team had already managed to bring the TCK up to around 80% pass rate but, as with most things, the hardest parts were left for the end. Interoperability testing was one of the toughest areas of the testsuite that involved calls between JBoss and the Reference Implementation (RI). Different types of EJBs deployed on both servers were calling each other and transaction and security context had to propagate from server to server over RMI/IIOP - which really meant CORBA underneath.

JBoss had an amazing implementation of RMI/IIOP put in place by a bunch of developers with Francisco Reverbel as component lead and committer on the JacORB project. There was even a published paper that explained the technological innovations entitled: "Dynamic Deployment of IIOP-Enabled Components in the JBoss Server". In short, while every other application server out there required you to pre-compile the RMI/IIOP Stubs, JBoss could generate them on the fly upon deployment. Not only that, but the dynamic stubs could be transported over the wire to clients accessing the server. On the flip side, the implementation was quite complex because there was a lot of classloader magic involved to pull this off.

At that point I've realized that one of the reasons I was hired was that I was the resident CORBA expert in my previous company. Which came really handy after I've found out that the interop testsuites were failing not due to some nasty bug, but simply because a whole lot of functionality was  missing  - the dreaded CSIv2 support. (Common Secure Interoperability Protocol Version 2 - a protocol implementing security features for inter-ORB communication.)

Which meant that I've had to go and read the OMG specifications and implement the missing protocols from scratch, but also spend an enormous amount of time analyzing and debugging the low level message exchanges between the different servers. Apparently not everything was described sufficiently by the spec, you've had to figure out how the different implementations actually behaved. And that was before the RI was opensourced, so I didn't even have access to the code I was testing with.

The CTS itself seemed like a monster. It was the largest testsuite I've ever worked with, consisting of something like twenty to thirty thousands tests. Not only it was challenging to setup and implement the necessary test drivers to link your implementation to the testsuite harness, but running the tests themselves took a lot of time, in the order of hours for the different parts of the testsuite and days if you wanted to run everything. We did have periodic CI-like testing for the main JBoss testsuite back then but not for the TCK.  We run the TCK on our local machines.

To make it even worse, interoperability testing was the most resource hungry part of the testsuite. A Swing GUI (jvm1) was invoking a test client (jvm2) that was accessing the JBoss server (jvm3) that was calling the Reference Implementation (jvm4) or the reverse, with both of the servers using a back end database (jvm5) to store data. Those JVMs plus your IDE of choice to step through the code could easily bring a beefed up laptop down to its knees.

Passing the TCK became pretty much an obsession. I didn't have holidays that magical summer of 2004 in which Greece won the Euro, Athens was hosting the Summer Olympic Games and I've had to earn my stripes as a Core Developer working around the clock on the coolest company on the planet next to some legendary JBoss Developers of the likes of Adrian Brock, Scott Stark, Bill Burke, Thomas Diesler and others.

As it came to be, passing the interop CSIv2 tests was the last remaining piece of the puzzle that sealed our J2EE 1.4 certification and lead to the release of JBoss 4.0 on Sep 20th, 2004, exactly 14 years ago. You can still read in the relevant What's New in JBoss 4 release notes the announcement of JBoss 4 as the industry's first officially certified J2EE 1.4 application server.

Passing the CTS was a huge boost for JBoss. It meant that we could really be in the same league with the big guys and we could start chasing competitive migrations from the other eighteen J2EE 1.4 compliant implementations. That was the power of standards in general and Java EE in particular, offering choice to the developer and this is still the reason why standards are important: so that portability is possible in this brave new Cloud Native era.

An open CTS/TCK levels the playing field, reduces the barrier to entry and allows new implementation to compete on features. It also facilitates collaboration between creators and implementers of new APIs and the broader community. It took some time for Oracle to let Java EE free but they finally did it and they should be applauded for this. It is now up to all of us to make Jakarta EE a success.




Sunday, November 05, 2017

Conference action - from Soft-Shake in Geneva to Devoxx in Antwerp

Fall is a busy conference period and parallel to our team's ambitious WildFly and JBoss EAP release goals I always try to squeeze in a few days into my schedule for opensource advocation and meeting with our communities.

So the week before I've had the pleasure of presenting on WildFly Swarm at Soft-Shake'17 in Geneva. It's a short 1.5h ride with the train from Neuchâtel so it feels pretty much local: you can get there, present and be back for dinner. And it's also very much francophone, although, they do accept talks in English.

If you don't know about WildFly Swarm, our sister project to WildFly, I suggest you check it out. Especially if you come from the Java EE direction, WildFly Swarm facilitates the transition to developing Microservices and Cloud Native applications. It also implements the Eclipse Microprofile specification.

The latest published spec for Microprofile is version 1.2 and you can get a very nice introduction about what it includes here.  If you want to try out Microprofile v1.2 on Wildfly Swarm check out this Tech Preview.

Now within less than 12 hours I should be on my way to the annual Devoxx.be pilgrimage.

  • If you are around on Monday evening, come over to the WildFly Community BOF at 20:30. It's been an exciting year for Java EE, with the release of Java EE 8 and the announcement of the move of Java EE to the Eclipse foundation under the Eclipse Enterprise for Java project (EE4J). Coupled with the fast paced Microprofile releases and the Microprofile effort also moving to Eclipse, and we have a very different landscape carved up for Java EE going forward. So do come to this BOF to discuss the latest developments and how they are affecting the WildFly community projects. I will be co-hosting this with Edson Yanaga, Director of Developer Experience at Red Hat who also has a deep-dive session in the morning.
  • Then on Thursday evening I am participating at the Opening Up of Java EE panel discussion (room 6, 17:50) hosted by David Delabassee alongside distinguished members of the Java EE community, Mike Croft, Ivar Grimstad, Martijn Verburg and Steve Poole. If you are interested in the future of Java EE and it's re-incarnation as a completely open Eclipse project, this is the place to be.
See you all very soon at Devoxx in Antwerp!

/Dimitris




Wednesday, May 24, 2017

Voxxed Days Athens - Recap

After a very successful Voxxed Days Thessaloniki last October, it was now Athens' turn to host the popular event series, and another chance for yours truly to visit the motherland, talk about the interesting stuff we are doing here at JBoss/Red Hat, meet with old friends and make new ones.

Voxxed Days Athens was very well attended with something like 450 participants, numerous sponsors and a great lineup of international and local speakers.

I very much enjoyed the talks of
  • Johan Janssen on "the Internet of Lego Trains" - I guess not so much about using Akka Actors, rather mostly about doing stuff with RaspberryPis & Legos.
  • Heather Vancura on "the JCP - Java Community Process" - being actively involved with Java EE for the past 15 years, I'm quite familiar with the JCP, but that was the first time I've actually got to meet Heather in person; I guess, it's never too late.
  • Dimitris Livas on "Continuous learning of Professionals in an evolving world" - very interesting approach of applying agile development principles not for developing systems but actually developing individuals. I'm keeping a personal note to learn more about it.
  • Yours Truly on "Turning your Java EE Monoliths into Microservices using WildFly Swarm"- I very much enjoyed giving the talk and I'd like to thank the populous and lively audience that attended. You can find the slides from my presentation here
  • Panagiotis Moustafellos on "360 monitoring of your services" - in this distributed cloud-based microservicey world it becomes all the more important to be able to monitor/diagnose/trace the execution and runtime behavior of your services
  • Panos Astithas on "Better security and privacy for your web apps" - great security tips from a firefox guru.
and finally
  • Douglas Crockford's totally inspiring closing keynote on "Numbers" - the night before I was lucky to sit almost opposite to him at the speaker's dinner in which he was mostly staying quiet; until the moment I started talking about how the Latin Alphabet originated from the Greek Alphabet, which built on top the Phoenician one, which innovated in the sense of transcribing sounds rather than symbols/ideas that was revolutionary for that time and allowed different peoples to use it and express their own native language. Apparently Douglas knows this stuff better than me, which explains to some extend his passion for programming language design. (I hope this doesn't sound Greek to you).
Comparing Voxxed Days Athens & Thessaloniki, I think the latest event felt more organized and especially technical support for the speakers was much better. On the down side, I've attended one talk at the Silk-B room and it was relative small for the number of people that wanted to get in. Also, the cinema format of Devoxx events is probably more preferable when it comes to the size of the rooms and the guaranteed good visibility for all.

Those are just minor considerations for future events, because the team and volunteers behind Voxxed Days Athens did a fantastic job organizing such a high quality event. There is a vibrant community of developers in Athens and events like this provide an excellent opportunity for people to get together, socialize and learn from the best, right there at your doorstep. I can only hope there will be more of that.


See you hopefully soon!

/Dimitris

Wednesday, October 26, 2016

Voxxed Thessaloniki - Recap

It's been a few days since the successful completion of the Voxxed Days conference that took place in the beautiful and historic city of Thessaloniki. Here's a quick recap.

I've had presented at a Voxxed event before,  but this time the conference had special interest for me not only because it was the first time the VoxxedDays series of events is coming to Greece, but also because I was eager to meet with the active scene of the local developer community of what we use to call the the co-capital.

The event which included three tracks was organized at the Village Cinemas Multiplex, following the very successful Devoxx format. There was an impressive lineup of 17 international speakers that attracted some 350 attendees from 11 countries. Those are impressive numbers for a first time conference.

I pretty much stayed on the Java/DevOps track, mostly centered around the theme of Microservices and CI/CD environments. My talk on WildFly and WildFly Swarm, our new toolkit for creating microservices on top of the robust WildFly runtime using best of breed Java EE and thirdparty components was also in that track. I've had great discussions on the subject with a large number of folks after the talk and during the beer session that followed the event. If you are interested to find out more you can find my slides here.

I've enjoyed the opening and closing keynotes on JDK9/Modules and Developer Careers respectively and I heard good comments about the other two Methodology/BigData and Web Development tracks.

I've also had the privilege to participate at the 8th Episode of the Devastation podcast talking about WildFly, Application Servers and Opensource software development. If you are an aspiring developer that wants to enter the magical world of opensource, I have some very practical advice for you in the podcast (as long as you understand Greek, that is).

I need to congratulate the guys at the organization and the large numbers of volunteers that helped pull this off. You guys did a magnificent job organizing a world class event, Bravo!

The problem is that you've raised the bar for subsequent events - we want more! And more we will get because VoxxedDays will be moving to Athens the coming May, so I'm looking forward to that.

Until the next time!
/Dimitris


PS
If you want to read more about VoxxedDaysThessaloniki, check out those links, too:

Sunday, January 31, 2016

The wait is over: WildFly v10 Final released!



http://wildfly.org/downloads/I suppose this is the question most often asked from any open source project out there:
"When is the next X.Y.Z release coming out?"
Developers are eager to get their hands onto the latest and greatest not only to check out the new features but also to receive important fixes. And while most projects follow a rough roadmap, you'll find that upon reaching important milestones like major final releases where timeboxing and feature dropping is not really an option, then quality becomes the driving force.

So rather than coming up with something half-baked, we'll do whatever it takes to bring to you working and performant software, even if that means we have to delay the release by a couple of months in order to fix an additional 200+ bugs going from Candidate Release 4 (CR4) to Final. Some project managers might not like this, but most developers that will get their hands dirty using our software will certainly appreciate it. :-)


So WildFly 10 was released last Friday, January 29th and for the release itself I will simply link to the comprehensive release announcement. For the lazy ones I can list the key features here:
  • Java EE7 compliance, full and web profile.
  • Java 7 support discontinued, please use Java 8+.
  • JMS services provided by ActiveMQ Artemis, a merger of HornetQ with Active MQ.
  • Ability to edit domain configurations offline, using the CLI.
  • Javascript support in Undertow with hot reloading of JS files.
  • Highly Available (HA) Singleton deployments, and HA-Message Driven Beans are back.
  • Message Driven Beans can be controlled as a unit in delivery groups.
  • Advanced automatic sizing pooling options for SLSBs and MDBs.
  • Hibernate 5 is included bringing a host of improvements.
  • Powershell scripts now available for the MS Windows crowd.
  • Migration operations to help migrate configuration from replaced subsystems (JBossWeb, HornetQ, JacORB)
  • ...
  • and a lot of other stuff, including all the cool features from WF8 & WF9.
Completing any major WildFly release is never a small feat, so I'd like to congratulate the WildFly development team and Jason Greene for leading it for the past 7 years(!), as well as extend a big Thank You to the large number of related projects (WildFly bundles more than 200 different components) and the WildFly community as a whole, for their support and dedication.

As the engineering manager of the team, I wish I could just send everyone on a much needed holiday at this point :-). However we need to focus our efforts on another major task, the completion and release of JBoss Enterprise Application Platform 7 GA(or else JBoss EAP), our long term commercially supported offering, based off of WildFly 8+9+10. For those interested, existing and prospective customers, a Beta for EAP7 has already been out for a few weeks now.

Enough said, download WildFly 10 now and tell us what you think. You may also find a docker image here and there is always the option of trying out WildFly on OpenShift.

Enjoy!
/Dimitris

Saturday, October 31, 2015

WildFly activity in Geneva

Geneva  is a global city, a financial and worldwide center for diplomacy. There are numerous international organizations based there, including the headquarters of the United Nations and the Red Cross. It is also the place where the Geneva Conventions were signed, for the treatment of wartime non-combatants and prisoners of war.

Geneva has also an active Java developer scene and is not too far from Neuchâtel, so I'd thought that in between release madness I should really be spending some time there spreading the word on WildFly and meeting with developers to talk about the nice things we've being working on.

And it it all started in September with a presentation at CERN on the evolution of the JBoss Application Server into WildFly. It is pretty interesting how an opensource project, the JBoss Application server founded in 1999 has managed to survive and thrive in an ever changing environment, helping developers focus on their real business problems, be productive and stop re-inventing the wheel.

The preparation for that talk had started a couple of month before after an invitation I've had received from Felix Ehm at CERN, who was one of the keynote speakers at the last DevNation in Boston. They are doing pretty cool things at CERN and they are using a lot of opensource software. If you want to learn more about that you may watch the recording from Felix's keynote speech here.

Of course, as a visitor you get a tour to some of the CERN installations which is a reason on its to own to be there, anyway, so a big thanks to both Felix Ehm and Miguel Marquina for the invitations and the hospitality.

Then last week, I've participated at Soft-Shake '15 Geneva  with a State of the Union talk on WildFly. I need to point out that WildFly 10 CR4 was released last week, and we are approaching a very important milestone, the release of WildFly 10 Final some time very soon, so I'd though I would give an overview of what you get with the latest release, which is more or less a full Java EE7 certified server with a ton of features culminated over the WF 8, 9 &10 releases, built on top on the innovative architecture introduced by AS7.



See you at Devoxx.BE next at the WildFly Community BOF!

/Dimitris

Tuesday, May 12, 2015

WildFly v9 at Voxxed Istanbul

A quick entry to say Teşekkürler! (Thanks!) to the organizational committee and all the people at Voxxed Days Istanbul. It was a great opportunity to meet and exchange experiences and ideas with the large Java developer community in Istanbul.



For those that asked for it, here are the slides from my WildFly presentation:


WildFly v9 - State of the Union

The event coincided with the release of WildFly 9 CR1 which brings us closer to the end of this release cycle.

The main features of this release are:
  • Core/Full split and Servlet-only distribution
  • Front-end load balancer with mod_cluster support
  • Undertow HTTP/2 & SPDY support
  • Graceful shutdown (suspend(timeout) / resume)
  • Switching to the JDK ORB from JacORB
  • Offline CLI mode
  • etc.
Check out the release notes and download it from here.

Until the next time!

/Dimitris 

Hagia Sophia (Αγία Σοφία)

Thursday, December 22, 2011

JBoss AS 7.1 CR1 released!

Santa came early this year at JBoss because his assistants have been really-really busy working around the clock across different timezones to produce JBossAS 7.0 CR1!

This is a very important milestone in the AS 7.x series because full EE6 support is now considered feature complete! (This is provided by running the standalone-full.xml profile.)

The release features several management improvements and enhancements to the clustering subsystem, as well as, final updates to a series of subsystems, like WebServices, for example.

The team has managed to resolve a whopping 378 JIRA issues within exactly one month, which means that there is a ton of new stuff and there is also a good chance for your reported issue to have been resolved. (If not, you are always welcome to contribute.)

The development team will keep the current pace until we get to the Final release, which comes next. In the meantime, we encourage you to download it, give it a spin and let us know! This is your chance to help us produce a quality 7.1 Final release.

Besides, what better passtime you can think of for the holiday break? :-)

Merry Xmas!


/Dimitris

Monday, April 25, 2011

DSI 2011, Slovenia - recap



It's been already a few days after my return from DSI 2011, the leading independent Informatics Conference in Slovenia (Dnevi Slovenske Informatike), where I was invited to keynote on the subject of Java EE in the Cloud.

I've made an effort to emphasize the importance of PaaS, give examples of existing Java PaaS offerings and then move on to describe the current status of Java EE with regards to the cloud and where things are going with Java EE7. I've completed the presentation by referring to what we are working on at JBoss/Red Hat in order to make JBoss AS more appealing to cloud users, especially with the ongoing work on AS7.


Although Java EE provides an excellent base for cloud applications and you can use Java EE in the cloud *now* there is certainly a lot more work required to provide you with truly portable options and that makes the work on Java EE 7 all the more relevant.

You can find my slides here.

It was also very interesting to listen to the presentations of the other two keynote speakers, Dalibor Topic from Oracle on The Future of Java and Karl Davies-Barrett from Microsoft on Windows Azure.

I would like to thank Professor Dr. Matjaz Juric from the University of Ljubljana for the invitation and the OpenBlend guys and other fellow JBossians for making my stay all the more pleasant and exciting, especially as we tried to catch my return flight 20' before take-off!

Looking forward to the next opportunity to visit beautiful Slovenia!

/Dimitris

Wednesday, January 05, 2011

Introducing the Brand New JBoss AS 6.0!

One and a half year after JBoss AS 5.1 and five milestone releases later and the final release of JBoss AS 6.0 is a reality!

Jason Green led the project for most of the time and produced the first four milestones, then Shelly McGowan took over with the goal to complete the release and achieve Java EE 6 Web Profile certification in order to deliver the goods to you. JBoss AS 6 was a great team effort and I certainly feel privileged to be working with such a great group of talented people.

You may read Shelly's announcement about the release here. Any time soon, the JBoss logo should appear in the Java EE compatible implementations page.

So what's included in JBoss AS 6.0, especially compared to AS 5.1?

To begin with, JBoss AS 6.0 is a Java EE 6 Web Profile implementation. Does this mean AS 6.0 implements only the Web Profile? Not really. JBoss AS 6.0 bundles almost all the technologies required by the full Java EE 6 spec, including the legacy stuff, like EJB2 and RMI/IIOP, however, we chose to certify only for the Web Profile at this stage due to resource constraints. (This is also a very good way to gather input and see how many people actually do care about EE6 full profile compliance, just scream in the forums!).

So naturally, JBoss AS 6.0 includes all the EE6 goodies like CDI/Weld 1.1, EJB 3.1 Lite&Embeddable, JPA 2/Hibernate 3.6, Bean Validation, Servlet 3, JSF 2.0, etc.), but also things like JAX-RS/RESTEasy 2.1, JMS 1.1/HornetQ 2.1.2, JAX-WS 2.2/JBossWS 3.4.1.

(For a definitive list of component versions, the source component-matrix/pom.xml is your friend).

Notable differences between 6.0 and AS 5.1 include the bundling of the Apache CXF stack as the default backend for JBossWS (compared to JBossWS Native) and the replacement of JBoss Messaging with the ultra-fast-next-generation HornetQ. The latter distributes also a native library, used as a bridge between HornetQ and linux libaio, for fast journal writes.

On the clustering front, the AS6 replication needs are now covered by the much promising Infinispan project replacing JBossCache, while mod_cluster support is included out-of-the-box, thus JBoss AS6 servers can dynamically discover and register to front-end apache httpd servers.

JBoss AS6 includes the latest in term of JBoss Microcontainer technologies and care has been taken to reduce the server footprint and the boot time. The consoles are lazily started upon first usage and overall the server should feel somewhat lighter than it's 5.1 counterpart (Hint: just wait to see how much lighter AS7 will feel like!).

For those 580,562 past downloaders and users of AS 5.1, JBoss AS 6.0 should provide an appealing upgrade path. I would also like to thank the community for been supportive all along with more than a quarter of a million downloads of AS6 while it was developed and many useful contributions, as Jaikiran pointed out in his post.

So give it a try and do let us know on the forums what do you think, we take your input quite seriously.

Enjoy the brand new JBoss AS 6!

/Dimitris

Wednesday, December 02, 2009

JBoss AS 6.0.0 M1 !!!

With the final approval of the spec and the imminent release of Java EE 6, it seems we are in for a fun ride and a new boost to the EE ecosystem. Check out a nice write-up in the following Red Hat announcement.

JBoss/Red Hat has gone a long way helping shape the future of the Java EE platform by leading and contributing to key JSRs (CDI, EJB 3.1, JPA 2, Bean Validation, Servlet 3, etc.), so it is exciting to see all this hard work coming to completion.

The JBoss Application server team couldn't possibly miss the party, so the first Milestone release of JBoss AS 6 has gone out today! This latest community release provides support for certain key technologies that are part of the Java EE 6 spec that you can try out right away, like CDI/Weld, BV and JSF2.

JBoss AS 6.0.0.M1 also provides hooks for a new Embedded prototype that will hopefully ease the testing of your applications, as well as support for mod_cluster, a great replacement for mod_jk for which you can read more in Brian's blog.

More milestones releases will follow, with each one adding more features and getting closer to implementing the EE6 spec. Follow Jason's blog to learn more about our release strategy.

Enough said! Check out the release notes, download JBoss AS 6.0.0.M1, try it out and tell us what you think.

Cheers
/Dimitris