193 symposiums and 30,000 attendees since 2001

Dan Allen

Senior Software Engineer - JBoss by Red Hat, Author, Open Source Advocate

Dan Allen is a member of the Seam and Web Beans project teams at JBoss by Red Hat, author of Seam in Action and a frequent speaker at major industry conferences such as JavaOne, Devoxx, TSSJS, Jazoon and JSFOne. Dan is known for his passionate work, with nearly a decade of development experience using technologies that include Java frameworks (Seam, JSF, EJB3, Hibernate, Spring, Struts), testing frameworks (JUnit, TestNG), JavaScript and DOM scripting, CSS and page layouts, Maven 2, Ant, Groovy, and many others.

Quickly after graduating from college, Dan became captivated by the world of free and open source software (FOSS). His involvment in FOSS helped him transition into the software development industry. He soon discovered the combination of Linux and the Java EE platform to be the ideal blend on which to build his professional career. In his search for a robust Web framework, Dan discovered JBoss Seam, which was quickly granted this most coveted spot in his development toolbox. The rest, as they say, is history. Dan is also a dedicated open source and Linux advocate and blogs about his experiences regularly. You can keep up with his discoveries by subscribing to his blog at http://mojavelinux.com.

Blog

Why you didn't know the Unified EL is being updated

Posted Sunday, August 2, 2009

Information about the proposed Unified EL update slated for Java EE 6 is hard to come by, so I decided to put together a blog entry with some useful links. If you haven't heard yet, which is understandable given the lack of publicized in more »

A game-changing Maven 2 plugin you absolutely must use

Posted Monday, May 4, 2009

Ever since I first started using Maven 2, I envisioned having a console in which I could execute life-cycle goals without having to incur Maven's startup cost between every run. It just seemed to me such a waste for Maven to build up the project more »

30 certainly was something

Posted Thursday, April 2, 2009

What a year! There's no question that year 30 was the most eventful and life changing year of my life to this point. I truly feel like I have grabbed life by the horns and got it steered in the direction I really want it more »
Read More Blog Entries »

Presentations

Seam & RESTEasy: You haven't seen REST yet

JSR-311 (JAX-RS) is one of the simplest, most elegant of all the Java EE specifications and is showing early signs of becoming an overwhelming success. It lets you to create RESTful web services from existing Java EE components by sprinkling a handful of more »

CDI (JSR-299), Weld and the future of Seam

This talk introduces JSR-299: Contexts and Dependency Injection for the Java EE platform (CDI), the new Java standard for dependency injection and contextual lifecycle management. The talk covers the core programming model, explains its relationship to EJ more »

Real Java EE testing with Arquillian and ShrinkWrap

Unit tests and mocks can only take you so far. Eventually, you'll want to see how your components behave in the real runtime environment, a style of testing referred to as integration testing. This talk introduces Arquillian, an extension for TestNG and J more »

Seam & RESTEasy: You haven't seen REST yet

close

Dan Allen By Dan Allen

JSR-311 (JAX-RS) is one of the simplest, most elegant of all the Java EE specifications and is showing early signs of becoming an overwhelming success. It lets you to create RESTful web services from existing Java EE components by sprinkling a handful of annotations over it. But the downside is that the resource must be a Java EE component. Seam's RESTEasy module allows you to use JAX-RS annotations on your existing Seam components, giving your web services access to the Seam container and, dually, an alternate interface to your Seam application.



In this talk, you learn how you can use your Seam components as REST resources using the Seam RESTEasy module. The most obvious benefit is that you can create RESTful web services using a Seam component and get access to full Seam injection, security, persistence management, and so on. You almost forget that Seam eliminates the configuration required to add JAX-RS to your application. You'll be enthralled by the module's innovative approach to doing CRUD over REST that mimics Seam's CRUD framework for JSF-based UIs. Finally, you learn about some nice extras that Seam provides such as exception handling and integration with Seam security.


CDI (JSR-299), Weld and the future of Seam

close

Dan Allen By Dan Allen

This talk introduces JSR-299: Contexts and Dependency Injection for the Java EE platform (CDI), the new Java standard for dependency injection and contextual lifecycle management. The talk covers the core programming model, explains its relationship to EJB 3.1 and JSF 2.0, and clarifies how it unifies and enhances the Java EE platform as a whole (extending to JPA, JAX-RS and JMS). You are then introduced to Weld, the JSR-299 reference implementation, and its servlet container extension. Finally, we look ahead at how a modularized Seam 3 ties into this new foundation as a set of portable CDI extensions, previewing several examples.



JSR-299: Contexts and Dependency Injection for the Java EE platform (CDI) is an elegant set of new services for Java that draws upon ideas from popular frameworks such as Seam and Guice and hooks into all the major specifications in the platform, including JavaServer Faces (JSF) 2.0, Enterprise Java Beans (EJB) 3.1, the Java Persistence API (JPA) 2.0 and JAX-RS 1.1. While many of the features provided by CDI--dependency injection, contextual lifecycle, configuration, interception, event notification--are familiar, the innovative use of meta-annotations is uniquely expressive and typesafe. This talk emphasizes the value in this approach.

Seam is a powerful open source development platform for building rich Internet applications in Java. Seam 3 is built on CDI and integrates technologies such as Java Persistence (JPA 2.0), Business Process Management (jBPM), Wicket, PDF and Excel reporting, Security and email into a unified full-stack solution, complete with sophisticated tooling.

In this discussion, Dan will talk about upcoming developments in Java EE 6 including CDI 1.0 and JSF 2.0 and how they set the foundation for Seam 3. This is a great opportunity to learn about how Red Hat is building on this new revision of the Java EE platform.


Real Java EE testing with Arquillian and ShrinkWrap

close

Dan Allen By Dan Allen

Unit tests and mocks can only take you so far. Eventually, you'll want to see how your components behave in the real runtime environment, a style of testing referred to as integration testing. This talk introduces Arquillian, an extension for TestNG and JUnit that can be used to validate the behavior of managed and enterprise beans or POJOs that rely on enterprise services just as easily as writing a unit test. Attend this talk to learn how to do real Java EE testing.



Arquillian is an extension for TestNG and JUnit that allows the developer to validate the behavior of managed and enterprise beans or POJOs that rely on enterprise services just as easily as writing a basic unit test. You can liken Arquillian to a modern version of Cargo, though its potential extends much further.

Using the fluent API provided by ShrinkWrap, groups of tests are packaged as Java EE archives, giving the developer fine-grained control over which resources are available to be tested. The test archives are then individually deployed and executed inside a pluggable remote or embedded Java EE container or a bootstrapped CDI environment. A RPC-style (or local, if applicable) communication between the test runner and the environment negotiates which tests are executed and reports back the results. This means two things for the developer: 1) You develop and execute Arquillian tests just like you would a regular unit test and 2) The environment in which you run the tests can be easily swapped...or you can use each one in turn.

Writing a test for a real business object should not create pause. You should be able to write "integration" tests just like you would test a calculator class. Arquillian and ShrinkWrap partner to give you that experience.



Dan's NFJS Schedule

Reston, VA
Apr 30 - May 2, 2010


Books

by Dan Allen

Seam in Action Buy from Amazon
List Price: $44.99
Price: $29.69
You Save: $15.30 (34%)
  • JBoss Seam is an exciting new application framework based on the Java EE platform that is used to build rich, web-based business applications. Seam is rapidly capturing the interest of Java enterprise developers because of its focus on simplicity, ease of use, transparent integration, and scalability.

    Seam in Action offers a practical and in-depth look at JBoss Seam. The book puts Seam head-to-head with the complexities in the Java EE architecture. The author presents an unbiased view of Seam from outside the walls of RedHat/JBoss, focusing on such topics as Spring integration and deployment to alternative application servers to steer clear of vendor lock-in. By the end of the book, you should expect to not only gain a deep understanding of Seam, but also come away with the confidence to teach the material to others.

    To start off, you will see a working Java EE-compliant application come together by the end of the second chapter. As you progress through the book, you will discover how Seam eliminates unnecessary layers and configurations, solves the most common JSF pain points, and establishes the missing link between JSF, EJB 3 and JavaBean components. The author also shows you how Seam opens doors for you to incorporate technologies you previously have not had time to learn, such as business processes and stateful page flows (jBPM), Ajax remoting, PDF generation, asynchronous tasks, and more.

    All too often, developers spend a majority of their time integrating disparate technologies, manually tracking state, struggling to understand JSF, wrestling with Hibernate exceptions, and constantly redeploying applications, rather than on the logic pertaining to the business at hand. Seam in Action dives deep into thorough explanations of how Seam eliminates these non-core tasks by leveraging configuration by exception, Java 5 annotations, and aspect-oriented programming.