JAX-RS (JSR 311) is the community-driven Standard for building RESTful web services with Java. The reference implementation for JAX-RS is Jersey and ships as OSGi bundles. Unfortunately the OSGi integration does not provide much more. To properly use Jersey in an OSGi context, a number of bootstrapping issues must be overcome, including:
OSGi is a set of open standards describing a dynamic module system for the Java language maintained by the OSGi Alliance.
Concierge strives to be a minimal footprint implementation of the OSGi core standards particularly targeted for resource-constrained embedded devices.
While the existing version has targeted OSGi R3, there are ongoing efforts to bring Concierge under the Eclipse umbrella and make it compliant with the current OSGi R5 standard.
At EclipseCon last year  I gave a talk on the plans to do a major redesign of the Equinox core framework for the Luna release. Now that we are in the middle of the Luna development cycle I will give an update on the overall progress of this effort and some of the challenges faced while doing such a major change to a core piece of the Eclipse platform. A majority of the development effort for Luna is focused on refactoring and, in many cases, rewriting the core Equinox Framework implementation to be based on the OSGi generic dependency model.
Tycho is a Maven extension for building Eclipse artifacts: Eclipse plug-ins/OSGi bundles, features, products/RCP applications, and p2 repositories.
New IoT gadgets are hitting the market every single day. Since most of them only connect to their own proprietary backend, they usually do not interact with each other. Overarching automation logic is hardly possible in those setups - the Eclipse SmartHome project seeks to overcome the challenges of interoperability and introduces a highly flexible architecture perfectly tailored to the needs of developers.
Apache Stratos is a PaaS built on top of Equinox and OSGi. Stratos runs all kinds of workloads including Java, OSGi, Tomcat apps, PHP, Node.js, MySQL, Mongo, Cassandra and others.
This session is an introduction to Stratos which will cover:
- How to get started
- Deploying on Amazon AWS and OpenStack Clouds
- Workloads Stratos supports
- Why and how Equinox is used
- Multi-tenancy and security
- Elastic scaling
- How Stratos compares to other PaaS systems
This workshop introduces application programmers to Virgo by installing the Virgo Tomcat Server and building and running a small application called GreenPages.
Despite its simplicity, GreenPages is designed to demonstrate many different Virgo features and to act as a template from which other modular applications can be built. This workshop shows how the Spring Framework can be exploited in a modular application...
Imagine your boss tells you to set up the cloud-infrastructure for a public trial system in three days. It should consist of isolated software labs where the trial users are able to execute their uploaded web applications. When a user joins the trial, a sandbox for his personal use should be created on-the-fly. In this sandbox he can access, manage, and monitor his latest application whenever he wants.
You think this is impossible? We thought the same :-).
The use of OSGi technology has evolved over the past decade from being used to manage devices (service gateways etc.), to providing an extensible framework for desktop applications (Eclipse RCP), to being used by a majority of JEE servers for implementing extensible and modular servers, and as a programming model for developing server-side applications as well as applications deployed to the cloud.
Modern software is modular and semantically versioned. It has a low TOC because it's reliable so does not incur unexpected costs. This is the kind of software developers love to implement, CIOs love to buy and users love to use. But what about older, complex software; is it doomed? In this talk we'll investigate a case where a large, complex, un-modular body of code took it's first steps toward proper semantic versioning and ultimately toward modularity. We'll discuss tooling and techniques that can be used to help developers learn how to apply semantic versioning.