JSR-299: Contexts and Dependency Injection for Java EE is an elegant set of new services for Java that draws upon ideas from JBoss Seam and Google Guice. While many of the features provided (dependency injection, contextual lifecycle, configuration, interception, event notification) are familiar, the innovative use of meta-annotations is uniquely expressive and typesafe.
In this session, Pete will introduce how JSR-299: Contexts and Dependency Injection for Java EE enhances the Java EE programming model step by step, and describe how it integrates with existing other Java EE technologies, such as EJB 3.0, JSF, and Servlets.
OpenRemote is an open platform for home and building automation. It integrates with existing home automation systems and protocols to create a non-proprietary software for smart homes. You can control your lights, air conditioning, heating, security and audio/video systems with OpenRemote from your iPhone or other smart phones and IP enabled devices. The goal of the project is to help home owners choose home automation technology that is not locked to a single hardware vendor and proprietary protocols. The new homes should be future-proofed with open protocols and open specifications. This talk explains in more detail what OpenRemote does and how it is achieving the goal of enabling home owners to control and monitor their own homes.
The value of modularity is proven by nature and was quickly discovered for software as well. By reducing coupling between the components of an application, applications become more flexible and easier to maintain. Object Oriented (OO) programming took these lessons and applied them to classes by encapsulating their fields. However, it turns out that OO creates designs that are highly coupled on class level; the tangled web of objects problem. This entanglement hinders reuse, complicates maintenance and makes larger applications unnecessary complex.
OSGi has addressed this problem with a specification for strong modularity in Java. This specification is implemented by a number of open source frameworks like Apache Felix, Eclipse Equinox, and Knopflerfish, as well as a number of proprietary frameworks. It is today the foundation of Eclipse, Spring, and impressively all major application servers like Websphere, Weblogic, JBoss, SpringSource, and Jonas.
OSGi solves many of the problems that plague Java. It addresses JAR hell, it speeds up class loading for large applications, it promotes and enables reuse, it allows you to manage your execution environments, makes large applications more transparent, and last but not least it offers a dynamic collaborative programming model. Hot code replacement is not an afterthought but an intrinsic part of the specification due to the service layer.
Front-end of the Najdi.si web search engine is currently powered by a monolithic java application. We have decided to gradually break this monolithic application apart and redesign it as a mashup of loosely coupled web services with REST style APIs. Such redesign to web oriented architecture (WOA) will provide us with a set of reusable web services that will enable more efficient support of existing and rapid development of novel web applications. In addition, we plan to allow other publishers to build their web applications by using the same powerful set of reusable web services (e.g., maps, single-sign on, search service, advertising tools) that Najdi.si employs.
In his talk Surtani covers Infinispan, the new open source data grid platform, and it’s motivations and evolution as a project. Distributed data structures will be discussed in-depth, including strategies of managing and deploying data grids on cloud services such as Amazon AWS by making use of powerful toolkits such as JClouds.
In this talk, Infinispan founder and JBoss Cache project lead Manik Surtani introduces the role of data grids in today’s cloud-computing environment. The extreme scalability offered by data grids are powering the greatest and most high-profile of today’s applications.
The only concept that Java has for representing complex data are objects. While objects are admittedly powerful and flexible, they are not the best solution to all problems. In this talk I will discuss three concepts from the theory of programming languages which improve the ease of programming, but are somewhat clumsily represented as objects. Therefore, a programming language can benefit from supporting them directly.
In this talk, the audience will learn about the web of projects under the OpenJDK umbrella, ranging from new JVM features for dynamic languages, to Java language changes, as well as projects working on ports to new operating systems, CPU architectures, and adding new features.
By now you've probably heard of OpenJDK, the open source project created around Sun's implementation of the JDK, and you're probably wondering what it's all about, how OpenJDK is made, where it's headed, who's working on what, and how to participate.
Wondering how to make your code more testable, maintainable and with reduced boilerplate code? If affirmative then this talk is for you.
We will examine on a simple-yet-real-world example how Guice helps us achieve the above. Guice is a dependency injection framework. Therefore a great portion of the talk will deal with Dependency Injection but not limited to. Starting with reducing the boilerplate associated with factories and looking how Guice made the code more testable. Arguably our code will also be more maintainable compared to alternative approaches. We will complete the example by examining the front-end code which also uses Guice. Integration with back-end will also be presented.
After the talk you will have a broad overview of what is possible with Guice.