Thursday Morning Classes

Thursday, Oct. 30, 8:45 am – 10:00 am
501 How to Implement Application Factories in Java
By Ravi Kumar

Thursday, Oct. 30, 8:45 am – 10:00 am
502 Google Your Domain Objects With Hibernate Search
By Scott Leberknight

Thursday, Oct. 30, 8:45 am – 10:00 am
503 Java Persistence Freedom Through XML Binding
By Doug Clarke

Thursday, Oct. 30, 8:45 am – 10:00 am
504 Managing Dependencies, Managing Change
By Kirk Knoernschild

Thursday, Oct. 30, 8:45 am – 10:00 am
505 Java UI Testing Patterns and Best Practices
By Dan Rubel and Phil Quitslund

Thursday, Oct. 30, 8:45 am – 10:00 am
506 Data Models for Java Applications
By Kenn Hussey

Thursday, Oct. 30, 8:45 am – 10:00 am
507 Looking Good! Polishing Rich Client Applications
By Annas “Andy” Maleh

Thursday, Oct. 30, 8:45 am – 10:00 am
508 Web Services and SOA: Beyond the Hype
Powered by Genuitec

Thursday, Oct. 30, 10:30 am – 11:45 am
601 Leveraging the Model-View-Presenter Pattern in Rich Client Applications
By Patrick Paulin

Thursday, Oct. 30, 10:30 am – 11:45 am
602 Integrating Reporting Into Your Java Applications
By Scott Rosenbaum

Thursday, Oct. 30, 10:30 am – 11:45 am
603 I’ve Just Inherited 1,000,000 Lines of Java Code—NOW WHAT?
By Michael Rozlog

Thursday, Oct. 30, 10:30 am – 11:45 am
604 Using the Process Framework Composer to Create Process Content
By Nate Oster

Thursday, Oct. 30, 10:30 am – 11:45 am
605 Four Ways of Presenting Tabular Data
By Kevin Taylor

Thursday, Oct. 30, 10:30 am – 11:45 am
606 RESTful EMF
By Kenn Hussey

Thursday, Oct. 30, 10:30 am – 11:45 am
608 Advanced Enterprise Server Bus
By Burr Sutter

Thursday, Oct. 30, 8:45 am – 10:00 am
501 How to Implement Application Factories in Java
By Ravi Kumar

Today, every developer has access to a proliferation of powerful open-source frameworks to build rich applications. These frameworks each offer incredible value, each with their own sweet spots and strengths addressing different layers of the application stack all the way from persistence to presentation.

However, the number of options and permutations can be overwhelming. A lot of effort goes into choosing and assembling the frameworks, establishing best practices and building out common core functionality. And even after it is established, every new member of the team has to go through a bootstrapping process to get a handle on the application.

This class teaches another approach: application-driven development using the Application Factories model. This model lets you and your team produce and consume pre-built application modules to quick-start applications, communicate intent, capture instructions and recommendations and point to resources—all in a single, simple way driven from the application’s view of the world.

The session works with real-world examples to demonstrate building an end-to-end Web application with core compatibilities from a database table all the way to presentation.

In addition, we’ll show how Application Factories help developers share knowledge—both navigational knowledge and logical knowledge of how to work with the application code. We’ll also explore techniques to capture developer intent and capture application evolution.

Thursday, Oct. 30, 8:45 am – 10:00 am
502 Google Your Domain Objects With Hibernate Search
By Scott Leberknight

Hibernate is one of the pre-eminent object/relational mapping technologies, but the Hibernate Search project adds full-text search capabilities to an already extremely capable tool to allow you to Google your domain objects.

Hibernate Search provides the means to add full-text search to your domain objects by leveraging Apache Lucene under the covers. You control which domain objects are searchable, how they should be indexed, and Hibernate Search takes care of the dirty work for you. It handles the object/index impedance mismatch and the task of managing the search indices. You can also execute full-text searches and retrieve actual domain objects transparently. We’ll also discuss various architecture alternatives including using Hibernate Search in both clustered and non-clustered environments.

Thursday, Oct. 30, 8:45 am – 10:00 am
503 Java Persistence Freedom Through XML Binding
By Doug Clarke

Developers face a number of options when dealing with XML in their Java applications. The most important question is whether to work directly with the XML DOM or to use Object-XML Mapping (OXM, also known as XML Binding).

Mapping XML to a domain object model simplifies Java development by allowing developers to work with rich objects instead of generic DOM elements. OXM is gaining popularity in the Java community, but not all OXM frameworks are equal. When selecting an OXM framework for a project, it’s important to consider performance, standards compliance, usability and flexibility.

In this class, you’ll learn all about OXM and see how these issues are addressed by EclipseLink MOXy, a component of the Java Persistence Platform. EclipseLink provides a rich OXM solution that addresses a wide range of application requirements while providing the benefit of integration with other EclipseLink persistence capabilities.

Thursday, Oct. 30, 8:45 am – 10:00 am
504 Managing Dependencies, Managing Change
By Kirk Knoernschild

Why is software so difficult to change? When you establish your initial vision for the software’s design and architecture, you imagine a system that’s easy to modify, extend, and maintain. Unfortunately, as time passes, changes trickle in that exercise your design in unexpected ways. Unlike what you’d anticipated, each change begins to resemble nothing more than another hack, until finally the system becomes a tangled web of code that few developers care to venture through. Eventually, modifications to the software intended to improve the system have the opposite effect of breaking other parts of the system. The software is beginning to rot. The most common cause of rotting software is tightly coupled code with a heavy dependency graph.

In this class, we’ll explore the most common symptoms of rotting design and examine their root cause. You’ll learn techniques and patterns, including some based on OSGi, the dynamic module system for Java, that have been used on real-world projects to help manage dependencies across classes, packages, and the binary units of deployment.

Thursday, Oct. 30, 8:45 am – 10:00 am
505 Java UI Testing Patterns and Best Practices
By Dan Rubel and Phil Quitslund

Want to know the patterns and best practices for Java user interface test automation? You’ve come to the right place. This class addresses testing at all the stages of the development process and will provide tactical advice for how applications can be designed to be more UI test-friendly while also addressing strategies for the sound UI testing of legacy systems.

We’ll draw concrete examples from extensive real-world experience in testing Java applications. In addition to overcoming technical challenges, a good Java UI testing story depends on a good testing culture. The class concludes with organizational patterns that help encourage UI testing best practices.

You’ll take away:

  • Practices that help developers build Java UIs that are easier to test
  • Strategies for building a robust Java UI test infrastructure applicable to in-house and legacy systems
  • A methodology that encourages productive collaboration between developers and traditional QA teams

Thursday, Oct. 30, 8:45 am – 10:00 am
506 Data Models for Java Applications
By Kenn Hussey

A data model is an abstract model that describes how data is represented and accessed. Data modeling is the process of creating a data model instance by applying a data model theory, typically to solve some business enterprise requirement.

In this technical class, we’ll take a look at examples of each of these kinds of data models and explore how they’re supported by Eclipse-based tools. We’ll see how data model instances can be categorized into various levels or perspectives, including:

  • Contextual data models, which identify entity classes, conceptual data models that define the meaning of things in the organization.
  • Logical data models, which describe the logical representation of properties without regard to particular data manipulation technology.
  • Physical data models, which describe the physical means by which data is stored.
  • Data definitions, which represent the coding language of the schema on the specific development platform.
  • Data instantiations, which hold the values of the properties applied to the data in a schema.

This class is at an intermediate level; prior knowledge of modeling concepts will be assumed.

Thursday, Oct. 30, 8:45 am – 10:00 am
507 Looking Good! Polishing Rich Client Applications
By Annas “Andy” Maleh

Desktop applications are written by technical people. And, as the saying goes, “technical people don’t see color.” Unfortunately, our customers do see color, and thus polishing your Eclipse RCP application’s look and feel is absolutely essential, whether it’s going to be used internally or distributed commercially. On the bright side, these minor added touches will separate your product from the competition by ensuring it has the professional touch that people have come to expect.

In this class, you’ll learn simple but valuable techniques that will improve the look and feel of your Eclipse RCP applications. Additionally, you’ll leave knowing how to customize different widgets using images, text and color. The class will begin by going over general issues with building professional-looking applications with Java. It will then move on to an overview of user interface–design best practices and Eclipse RCP look-and-feel guidelines.

Finally, you’ll learn how to customize those Eclipse RCP widgets to fit your specific business needs. This intermediate-level class is for developers and architects who are experienced with Java and familiar with SWT/JFace or Eclipse RCP development.

Thursday, Oct. 30, 8:45 am – 10:00 am
508 Web Services and SOA: Beyond the Hype
By Brian Fernades

Your projects are nearly complete, but without the shine of cutting-edge Web Services and underlaying architecture, they just won't have the polish they require. Some services promise the world, but are difficult to implement. Some tools don't even support the functionality you need, and therefore become a limitation on the delivery you're looking for.

In this class, we'll provide practical ways you can quickly and easily utilize the latest Web Service technologies and SOA to put the final polish on all of your Enterprise projects.

Thursday, Oct. 30, 10:30 am – 11:45 am
601 Leveraging the Model-View-Presenter Pattern in Rich Client Applications
By Patrick Paulin

The Model-View-Presenter pattern is an update of the well-known Model-View-Controller pattern. Besides better reflecting the realities of modern Java user interface development, the pattern has significant advantages. First, MVP usage can greatly increase the testability of UI logic. Second, the pattern makes it possible to reuse UI logic across different UI renderings. In this class, you’ll learn how to use the MVP pattern when building Eclipse Rich Client Platform applications.

We’ll cover:

  • What is MVP and how does it relate to previous UI architectural patterns?
  • How do I create and unit-test MVP presenters utilizing the RCP?
  • How do I integrate JFace data binding into an MVP architecture?
  • How do I achieve reuse of UI logic with MVP?

This class shows sample code that demonstrates how the MVP allows the same UI logic to be used in both an RCP and a Rich AJAX Platform application. This example will illustrate how the MVP pattern can help to maximize your future flexibility in the area of UI development.

Thursday, Oct. 30, 10:30 am – 11:45 am
602 Integrating Reporting Into Your Java Applications
By Scott Rosenbaum

Why build it yourself? The Business Intelligence and Reporting Tools project provides infrastructure and tools to design, develop and deploy report content to your Java EE applications. Class #303 introduced BIRT 2.3. This class picks up where that introduction left off, going deep into the BIRT framework’s Design Engine and Runtime Engine APIs.
You’ll learn how to integrate BIRT into your existing application infrastructure, understand the various BIRT deployment models, and discover how Java EE developers can tie BIRT into other Eclipse projects, including the Web Tools Projects, RCP applications, Google Web Toolkit and stand-alone Java apps. If time permits, we’ll also delve into automated testing of BIRT report designs.

Thursday, Oct. 30, 10:30 am – 11:45 am
603 I’ve Just Inherited 1,000,000 Lines of Java Code—NOW WHAT?
By Michael Rozlog

Has your team just inherited a lot of code from another project—and now you’re responsible for it? Don’t panic! This class will teach you all about Software Archeology, a structured approach to help your developers understand the code they’ll be working on. This approach is also useful when deconstructing an existing piece of software to find patterns for reuse in future developments.

Software Archeology is a 6-step process. By the time a team is finished, and has reviewed what is there and what isn’t, this process can drastically help define the go-forward project development strategy. The 6 steps are:

  • Visualization
  • Design violations
  • Style violations
  • Business logic review
  • Performance review
  • Documentation

After attending the class, you’ll understand the concepts behind Software Archeology and the tools used to support it. You’ll also know how to apply both static and dynamic analysis to code, and be able to apply these techniques in the real world.

Thursday, Oct. 30, 10:30 am – 11:45 am
604 Using the Process Framework Composer to Create Process Content
By Nate Oster

This session will introduce the Eclipse Process Framework (EPF) project and invite attendees to experiment with the tool during the session to author process and publish content. The instructor will first discuss the Software Process Engineering Metamodel (SPEM) from the OMG that relates to the project. He’ll demonstrate how the EPF Composer tool can be used to author process content. The Composer tool and a full SDLC library are available for download.

The participants will be invited to use the tool to extend the library to add some techniques, guidelines or even new tasks to the process and publish a new one on their laptop. The instructor will also do some updates and then walk through the published results with the attendees. This will be a hands-on session where the participants walk away saying, “Now I get it, I could download and use this tool to publish a process description for my organization.” Participants are expected to have a laptop able to run Eclipse. Though there are no prerequisites, this should be considered an intermediate-level class because participants will be expected to learn fast on-the-fly and participate.

Thursday, Oct. 30, 10:30 am – 11:45 am
605 Four Ways of Presenting Tabular Data
By Kevin Taylor

Did you know that Java developers have at least four different Eclipse components available just for presenting tabular data in your application’s user interface? Since tabular data is so prevalent in corporate business applications, it’s essential that you and your team have a solid understanding of the different UI choices available.

In this advanced class, we’ll delve deep into Table, TableViewer, KTable and CompositeTable, exploring each component’s high-level APIs, contrast their performance characteristics, and look at common usage patterns, including master-detail, editable grid, data binding, filtering and sorting. If you’re interested in writing powerful and practical Java business applications, attend this class.

Thursday, Oct. 30, 10:30 am – 11:45 am
606 RESTful EMF
By Kenn Hussey

Representational State Transfer (REST) is a style of software architecture for distributed hypermedia systems like the Web. However, it’s possible to design any enterprise software system in accordance with the REST architectural style without using the HTTP protocol and without interacting with the World Wide Web. Systems that follow the principles of REST often referred to as RESTful.

In this technical class, we’ll look at how the Eclipse Modeling Framework supports these concepts and identify some best practices that Java developers can employ for working with REST using EMF.

This class is at an advanced level, and assumes some experience with the Eclipse Modeling Framework.

Thursday, Oct. 30, 10:30 am – 11:45 am
608 Advanced Enterprise Server Bus
By Burr Sutter

This will be a dynamic session focused on demonstrating the customary capabilities associated with an Enterprise Service Bus for SOA-focused middleware. These capabilities include service hosting, message delivery, endpoint registry, protocol mediation, transformation, orchestration, BPM, declarative routing rules, BPEL, and rules services.

The instructor will also discuss enterprise integration patterns, such as Filter, Content-Based Router, Splitter, Aggregator, Wire Tap, etc. In addition, he will demonstrate a technique that shows a practical application of Aspect Oriented Programming (AOP) that allows you to extend your existing Web application silos to an ESB infrastructure.