Gold sponsors

Intel logo

IBM Corporation

Cisco

JBoss

Sonatype

SAP

Oracle

Silver sponsors

Blackberry

agitar

bsi logo

Microsoft

Google

Instantiations

Soyatec

Xored

amazon

Actuate

Bronze sponsors

Purple Scout

froglogic

Paremus

objectivity

Sopera

Genuitec

itemis

excelsior

Activity sponsor

eclipsesource

Media sponsors

Methods & Tools

SD Times logo

TSSJS

Be a Sponsor

Making Dependency Injection work for you

Joep Rottinghuis

Making For Eclipse · Standard (25 mins)
Thursday, 13:30, 25 minutes | Grand Ballroom

Tags: Emerging Technology , Java , OSGi DevCon , Tools
7
·
8
·
9
·
10
·
11
·
12
·
13
·
14
·
15
·
16
·
17
·
18

By now just about everybody has heard about Dependency Injection (DI) and how cool it is. Yet not everybody has been able to use it in its full glory...

 

In this talk we will discuss how to create loosely coupled libraries that can be used as OSGi bundles, using with Spring Dependency Injection, or in “standalone” mode.

 

Declarative Services are the standard for OSGi and there are other approaches, but what some of the consumers of your library don’t use OSGi? What if you want to use DI in a plain Spring stack on the back-end? Of course you want your code to work in your Eclipse (RCP) application and who wants to write the same thing multiple times?!?

 

We will show an approach that works across all of these use cases.

 

Challenges:

When dealing with Dependency Injection there are several aspects that need to be solved, among which:

  • Coupling
  • Synchronization
  • Type Safety
  • Lifecycle
  • State Change Notification

We will show code how to deal with each of these challenges.

Best Practices:

We will show some best practices to avoid nasty pitfalls. After hearing this talk you too should be able to harness the power of Dependency Injection, no matter the challenges of your environment.

Joep Rottinghuis is Productivity Tools Architect at eBay, Inc.

He is responsible for the architecture and implementation of various tools that support thousands of developers in various steps of the software development lifecycle, including Source Control Managements Tools, Bug Tracking, Merge Coordination System, and Eclipse/RCP Tools.