Modular Java Applications with OSGi
No more JAR-hell. No more wondering which version of the code you have.
Modularity with Equinox OSGi
Equinox OSGi is a lightweight, high performance, module system for Java. It is the reference implementation of the modular OSGi framework specification.
Using Equinox as your runtime you get full control of the running code including the ability to dynamically reconfigure the system and rock solid performance that powers many of the largest commercial systems. Think of Equinox as an extension of your JRE.
The Equinox project includes a wide array of standard and additional service implementations in support of scenarios from embedded to desktop to server-side.
The Equinox project was founded by and is co-led by EclipseSource team members.
Learn more about Equinox OSGi
Why Equinox OSGi
Equinox is standard
Equinox technology is based on a set of specifications from the OSGi Alliance. The core specification for the modularity framework is the basis of JSR-291 and Equinox is the reference implementation of both. With Equinox you not only get the power of standards, you are using the gold standard implementation.
Modularity == Agility
Highly modular systems are more agile. Look at Eclipse itself. Equinox is the basic framework under all Eclipse applications. By using Equinox you can bring that level of flexibility and agility to your project and your business. Create new product configurations without writing code. Embed existing business logic in new applications. Get the solution you need when you need it.
Equinox runs your code everywhere
Mobile computing, Rich clients, Web 2.0, JEE, Cloud computing, Virtualization. The number of computing platforms is exploding. Equinox enables modularity in all of these environments. Not only that, in many cases you can reuse your bundles across the computing landscape.
Equinox changes with you
Requirements change. It's a given. Using Equinox you can build highly dynamic systems that adapt to current users and requirements. Deploy a new application that needs additional function? Add the function without taking the system down. Done with something? Unload it and save resources.
Equinox scales
Equinox scales up to thousands of collaborating components. Agressive use of lazy activation and lazy loading mean that your application takes only the resources required. At the other end of the spectrum, Equinox itself is small enough to run in embedded wearable computers, telematics units and process control systems.
Equinox OSGi Tutorials
Webinar - OSGi and Equinox Tutorial
Jeff McAffer - May 20, 2010
Running Time: 2 hours
This abbreviated version of our popular mini-course is designed to provide a clear understanding of the essential concepts, facilities and advantages of this key technology. This session will be of use to anyone interested in building flexible systems in Java. It is particularly useful for technical managers and decision makers to help them better understand the overall runtime technology.
Webinar - Equinox Ganymede
Jeff McAffer - August 5, 2008
In this presentation Jeff McAffer introduces Equinox and its use as a set of building blocks for creating applications. We overview the architecture and technology, and demonstrate many of the building blocks using an example client/server application.
Webinar - Eclipse Equinox and Component Oriented Development
Jeff McAffer - December 17, 2007
Michael Coté has a webinar, this time around the idea of using Eclipse’s OSGi framework for a back to front runtime. The first installment - in two parts - is on the core of the Eclipse runtime, Equinox, done by Jeff McAffer.
Webinar - OSGi on the Server-side: Eclipse Europa Equinox Demo
Jeff McAffer - June 21, 2007
In this webinar, Michael Coté talks with Eclipse Equinox project lead Jeff McAffer about the new version of the Eclipse Equinox OSGi framework in Eclipse Europa. We see a demo of the the new server-side capabilities in Equinox and the development model used. The notion of "modules" and "components" is fast becoming an important topic in the Java world, so it's interesting to see the Eclipse platform's framework moving from the desktop to the server.
Podcast - OSGi and Equinox
Jeff McAffer - December 17, 2007
In this podcast, Jeff McAffer, Eclipse Equinox Project Lead, discusses Eclipse membership in the OSGi Alliance, the factors motivating the adoption of OSGi as the component model for Eclipse, the cool places that OSGi turns up, and the rosy future of OSGi and Equinox.
Provisioning with Equinox p2
Equinox p2 is a comprehensive provisioning platform for delivering and managing RCP applications, OSGi runtimes, tools, servers and embedded systems.
Using integrated multi-threaded download, bundle pooling and state-of-the-art constraint resolution technology, p2 gives you one-stop-shopping for defining, installing and managing complex software systems.
Learn more about p2
Why p2?
Manage your complete install
Traditional installers don't know about Eclipse bundles and features, they simply copy files around and set parameters. They also stop short of updating installed function. p2 has deep knowledge of how Eclipse works and gives you full control of all aspects of your Eclipse install from program and VM arguments to start-levels to bundle configuration. There is no need to use disparate tools for install, update and management of your system.
Simplified workflows
Installing and managing complex systems can be challenging. p2's simplified workflows give end-users natural metaphors, like drag-and-drop, to manage their software. Application developers can compose and integrate new provisioning interfaces by reusing p2's GUI components, or design a completely new workflow based on p2's solid API.
Pool your resources
If your users have many Eclipse-based systems installed on one machine, p2's bundle pooling will save disk space, download time and bandwidth. Bundles installed for one profile can be pooled and used to run other profiles. Any given bundle need only be downloaded and installed once to be available to all p2 profiles.
Avoid runtime surprises
Unlike previous Eclipse management technology, p2 knows exactly what you are and will be running. By separating the description of your system from the system itself p2 allows you to reason about installation changes before committing them. No more runtime surprises or wondering what you are actually running. If p2 can install it, Eclipse can run it.
Extensible API and Open Format
Today's systems are composed of many different technologies. Each runtime has its own requirements and configuration quirks. WARs, JARs, RPMs, MSI, executables etc. all work differently and integrate differently. p2's extensible touchpoint mechanism adapts by using platform-specific code to interact with runtimes and install components.
p2 Tutorials
Provisioning RCP applications with p2
Ian Bull - September 15, 2009
The p2 provisioning platform has replaced Update Manager as a mechanism for managing Eclipse based applications. While p2 is most notably recognized for managing Eclipse installs, p2 has been designed as a general purpose provisioning platform for OSGi and Eclipse RCP. In this webinar, you will see how you can use p2 to manage your own RCP based applications.
Remote Provisioning With p2
Jeff McAffer - May 4, 2009
In this video Jeff McAffer, demonstrates how to define, provision and manage remote Eclipse, Equinox and OSGi-based systems using p2 technology. The presentation highlights the extensibility and flexibility by showing a combination of standard p2 function and EclipseSource extensions for remote scenarios. Upcoming videos build on this base and show the use of p2 in server and cloud-based environments.
Introduction to Equinox p2
Pascal Rapicault - IBM - July 14, 2008
Equinox p2 is a component of the Eclipse Equinox project. p2 provides a framework for provisioning Eclipse-based applications. It replaces Update Manager as a mechanism for managing your Eclipse install, searching for updates and installing new functionality.
p2 UI Walk-Through
Pascal Rapicault - IBM - July 14, 2008
- Overview and installation
- Installation from a local site
- Update of installed software
- Installation through dropins folder
Runtime Packages from Eclipse RTP
The EclipseRTP project delivers pre-configured EclipseRT packages that allow you to start developing with the Eclipse runtime quickly - without having to find your way through the jungle of p2 repositories.
Equinox and p2 provide the basis for all packages. This means that a package can be extended and configured using all the standard Eclipse tooling. In addition, the packages can be used as a target platform by consuming the provided p2 repository or by downloading and running the packages standalone.
Learn more about RTP
More
The RTP packages are licensed under the EPL and like all Eclipse tools and frameworks, can be used to develop open source or commercial software. Maintained by Eclipse committers, the packages will be delivered and updated during the regular Eclipse release cycles.
While all EclipseRT technologies are implemented using Java, the RTP packages are able to run on nearly every environment. To demonstrate this, the project also provides several cloud images that have the RTP packages pre-installed. The packages will be delivered and updated during the regular Eclipse release cycles.