1. Introducing OSGi: modularity, lifecycle, and services
1.1.1. Java’s modularity limitations
Low-Level Code Visibility Control
Error-Prone Class Path Concept
1.2. An architectural overview of OSGi
1.4.1. Java Enterprise Edition
1.4.4. Java Management Extensions
1.4.6. Java Business Integration
Chapter 2. Mastering modularity
2.3. Modularizing a simple paint program
2.5. Defining bundles with metadata
2.6. Finalizing the paint program design
2.7. OSGi dependency resolution
3.1. Introducing lifecycle management
3.2.1. Introducing lifecycle to the paint program
3.2.2. The OSGi framework’s role in the lifecycle
3.2.3. The bundle activator manifest entry
3.2.4. Introducing the lifecycle API
3.3. Using the lifecycle API in your bundles
3.3.3. Inspecting framework state
3.4. Dynamically extending the paint program
4.1. The what, why, and when of services
4.4. Using services in the paint example
4.4.1. Defining a shape service
4.5. Relating services to modularity and lifecycle
4.5.1. Why can’t I see my service?
4.5.2. Can I provide a bundle-specific service?
4.5.3. When should I unget a service?
Chapter 5. Delving deeper into modularity
5.1.2. Implicit export attributes
5.3.1. Declaring bundle dependencies
5.4. Dividing bundles into fragments
5.5. Dealing with your environment
Chapter 6. Moving toward bundles
6.1. Turning JARs into bundles
6.1.3. Discovering what to import
6.1.4. Embedding vs. importing
6.2. Splitting an application into bundles
Chapter 7. Testing applications
7.2.1. Testing expected behavior
7.2.3. Mocking unexpected situations
Chapter 8. Debugging applications
8.2. Solving class-loading issues
8.2.1. ClassNotFoundException vs. NoClassDefFoundError
8.3. Tracking down memory leaks
9.1. Versioning packages and bundles
Chapter 10. Managing applications
10.1.1. Introducing management agents
10.2. Ordering bundle activation
Chapter 11. Component models and frameworks
11.1. Understanding component orientation
11.2.1. OSGi’s service-oriented component model
11.3.1. Building Declarative Services components
11.3.2. Providing services with Declarative Services
Chapter 12. Advanced component frameworks
12.1.1. Blueprint architecture
12.1.2. Providing services with Blueprint
12.1.3. Consuming services with Blueprint
12.2.1. Building iPOJO components
12.2.2. Providing services with iPOJO
12.2.3. Consuming services with iPOJO
Chapter 13. Launching and embedding an OSGi framework
13.1. Standard launching and embedding
13.1.1. Framework API overview
13.1.2. Creating a framework instance
13.1.3. Configuring a framework
13.2.1. Determining which bundles to install
13.2.3. Configuring, creating, and starting the framework
13.2.4. Installing the bundles
Chapter 14. Securing your applications
14.1. To secure or not to secure
14.3. OSGi-specific permissions
14.4. Managing permissions with Conditional Permission Admin
14.4.1. Conditional permissions
14.4.2. Introducing the Conditional Permission Admin Service
14.4.3. Bundle location condition
14.5. Digitally signed bundles
14.5.1. Learning the terminology
14.7. Advanced permission management
Chapter 15. Web applications and web services
15.1. Creating web applications
15.1.1. Using the HTTP Service specification
15.2. Providing and consuming web services
15.2.1. Providing a web service
A.1.1. Introducing the bnd tool
A.2.1. Introducing the maven-bundle-plugin
Appendix B. OSGi standard services
3.141.31.125