The Ada language has been architected to provide a strong foundation for building software at the heart of safety critical, real-time, and long-maintained programs. The benefits of Ada in such environments have led to its use in a wide range of systems where correctness and predictability are critical. The current trend in our industry is to loosely tie systems together to share data that previously required manual re-entry, simply was not available, or worse could have been inconsistent between systems. This trend is resulting in a need to connect previously closed systems over in-house and external networks to perform that loose linkage. The FAA has embraced this technology and has been developing an architecture, code framework, and standards for sharing data across their entire spectrum of Air Traffic Control systems and consumers. The FAA's overall umbrella for this is termed SWIM (System Wide Information Management), and programs participating in the architecture are called "SWIM implementing programs". The ERAM (EnRoute Automation Modernization) program I work on and previously presented at SIG Ada 2009 is one of the first SWIM implementing programs. ERAM has recently entered the test phase of the first increment of SWIM functionality. ERAM SWIM faced many of the same hurdles as other legacy Ada systems around the globe. The new interfaces are built on standard web protocols and need to provide secure reliable information flow to both other internal FAA systems, and external customers such as the major commercial air carriers. In an effort to use best industry practices Lockheed Martin and the FAA chose Java and other web-standard technologies to implement much of the new SWIM interface. Java has gained a strong foothold in the internet environment and the classrooms for a variety of reasons. The result is that Java enjoys a large amount of FOSS and commercial support that makes it a natural choice for such a web interface, even in a high stakes environment such as ATC. ERAM SWIM development has encountered several issues with bridging the gap between Ada and Java and the quickly evolving world of FOSS/COTS SW. Performance issues and command and control issues have dominated our internal discussions and been the focus of much of our effort to achieve test readiness. Efficient data representation, baseline control (remember much of it is FOSS), and debugging have also received a lot of attention. We had a lot of prior experience with mixed languages having several hundred thousand lines of C and C++ and considered ourselves prepared. However, integrating with Java is completely unlike integrating with those others, and we have had to adapt across the board to this new challenge. My talk will focus on the challenges we have encountered, and the lessons we have learned about the strengths and weaknesses of the various languages and other technology elements we have used implementing ERAM SWIM.