Don’t get trapped into a memory leak using CDI Instance Injection

In one of our recent projects we have encountered some memory leaks using standard JavaEE technologies like CDI and EJBs. Our application in question does a lot of communication using JMS as a transportation layer. To be able to handle different message types dynamically we have used the Instance Injection of CDI. Using that approach with CDI might get your trapped into some memory leak problems like we did, so we would like to share our experiences and what you can do about it.

Continue reading

Use jBPM5 embedded within a Java EE 6 application

Since the first final release of jBPM5 at the beginning of 2011 a little more than one year has passed. Despite of being a final release there have been a couple of bugs and the documentation was having many deficiencies. During the last year, however, jBPM5 was quickly moving forward and many bugs were fixed and the documentation has significantly improved.

Notwithstanding the improvements there are still some points which are not covered by the documentation of which the most important one for us is the integration of jBPM5 into a Java EE6 application. In the past we had multiple Java EE 5 projects where jBPM3 could be easily integrated. This is something we want for the current amazing Java EE 6 stack. Unfortunately there is no documentation on how to achieve this goal – maybe because no one succeeded in implementing it? Therefore, we took on this challenge and found a solution which meets our requirements. In this blog post we will describe this solution. Before we start to describe our solution we want to briefly lay out the requirements of the integration of jBPM5 into a Java EE 6 application.
Continue reading

Extending CDI Observer pattern to support global events

CDI introduced a convenient implementation of the observer pattern into the JavaEE world. Using the CDI API, components can emit events, or receive events created by other components (using the @Observes annotation). This allows developers to reduce the coupling between the emitters and the receivers of events.

However, the current API does not allow to handle what we call “global” events. Global events are propagated among all active sessions, i.e., current users and are not restricted to the current session.

This blog post briefly explores the CDI observer pattern and explains how it can be extended to support global events.
Continue reading

The akquinet tech@spree Technology Radar is now available

akquinet tech@spree has published a technology radar analyzing the trends of 2011–2012. It provides an overview of the evolution of practice in the Information Technology sector in 2011 as well as a forecast for 2012. It is the result of one year of analysis and synthesis performed by the Innovation department of akquinet tech@spree.

The technology radar captures the output from discussions, experiments, projects, and feedback from customers and developers. It synthesizes the results to inform global technology strategy decisions. It focuses on new technologies and methodologies with a high level of attraction. This document does not aim to provide an in-depth presentation of each technology, focusing instead on conciseness and highlighting the trends and state of the practice.

More information on http://radar.spree.de

Akquinet presents: Aslak Knutsen and Pete Muir on “The future of Java enterprise testing” and “The unified programming model of Java EE 6″

In cooperation with the Java User Group Berlin Brandenburg, akquinet proudly presents the two JBoss Core Developers Aslak Knutsen and Pete Muir (project lead for Seam and Weld):

1) Throwing complexity over the wall:
The future of Java enterprise testing

This talk unveils the missing link in enterprise Java development: simple, portable integration tests. For many, enterprise Java development has long been an arduous undertaking because of this void. While development life is simple with unit tests and mocks, they only take you so far. Eventually, you need to validate how your components interact and operate in their intended environment–you real need integration tests. Yet, writing integration tests has meant assuming the burden of bootstrapping all or part of your infrastructure. That’s time lost and it places a mental barrier on testing.

Arquillian, a container-oriented testing framework layered atop TestNG and JUnit, tears down this barrier. It does so by bringing your test to the runtime rather than requiring you to manage the runtime from your test. Picking up where unit tests leave off, Arquillian enables you to test real components that rely on real enterprise services in a real runtime.

What’s the secret ingredient? This talk will show how Arquillian simplifies integration testing by providing a component model for tests, just as Java EE 5 simplified server-side programming by providing declarative services for application components. The test component model consists of container lifecycle management, test enrichment (dependency injection), container deployment and in-container test execution. Using a component model means your tests are portable and able to move between different environments, from single embedded or remote to multi-server to multi-cloud nodes.

Attend this talk to learn about the future of Java enterprise testing.

Presenter: Aslak Knutsen, Senior Software Engineer, Red Hat, Inc.

Aslak Knutsen is currently employed by Red Hat, on the JBoss Seam team where he is the project lead for Arquillian and works on projects such as ShrinkWrap, Weld and Seam 3. Previously, Aslak was a Senior Consultant at Conduct AS (working with JBoss related technologies) and Senior Developer at EDB ASA (working with electronic billing/banking systems).

2) The unified programming model of Java EE 6

With the introduction of Contextual Dependency Injection and Managed Beans into the Java EE 6 platform, a Java EE developer now has a full complement of facilities to write a Java EE application. But when should CDI be used, and when should introduce EJBs? How can you integrate CDI and EJB into your application? In this session we will walk through a Java EE 6 application build around CDI, and show how we can unobtrusively add EJB services as we need them.

Presenter: Pete Muir, Principal Software Engineer, Red Hat, Inc.

Pete is the project lead for Seam and Weld (the reference implementation of JSR-299: Contexts and Dependency Injection for Java EE), and is the co-founder of Arquillian, a test harness for Java application servers. Pete represented JBoss on the JSF 2.0 Expert Group. Pete is currently employed by Red Hat, as a Principal Software Engineer working on JBoss open source projects. Before working for Red Hat, Pete used and contributed to Seam whilst working for a UK based staffing agency as IT Development Manager.

date: October 6th 2010
time: 7pm-9pm (warm up 6:30pm)
venue: FU Berlin, Institut für Informatik, Hörsaal (EG), Takustrasse 9, 14195 Berlin

Join us for snacks and discussions after the talks!