Upload
apurv
View
227
Download
0
Embed Size (px)
Citation preview
7/21/2019 osgi specificaiton
1/735
OSGi Service Platform,Service CompendiumRelease 4, Version 4.2
March 10, 2009 10:02 pm
7/21/2019 osgi specificaiton
2/735
7/21/2019 osgi specificaiton
3/735
OSGi Service PlatformService CompendiumThe OSGi Alliance
Release 4, Version 4.2March 2009
7/21/2019 osgi specificaiton
4/735
i-724 OSGi Service Platform Release 4
DISTRIBUTION AND FEEDBACK LICENSE
2000,2009 OSGi Alliance
The OSGi Alliance hereby grants you a limited copyright license to copy and displaythis document (the Distribution) in any medium without fee or royalty. ThisDistribution license is exclusively for the purpose of reviewing and providingfeedback to the OSGi Alliance. You agree not to modify the Distribution in any wayand further agree to not participate in any way in the making of derivative worksthereof, other than as a necessary result of reviewing and providing feedback to theDistribution. You also agree to cause this notice, along with the accompanyingconsent, to be included on all copies (or portions thereof) of the Distribution. The OSGiAlliance expressly reserves all rights not granted pursuant to this limited copyrightlicense including termination of the license at will at any time.
EXCEPT FOR THE LIMITED COPYRIGHT LICENSE GRANTED ABOVE, THE OSGiALLIANCE DOES NOT GRANT, EITHER EXPRESSLY OR IMPLIEDLY, A LICENSE TOANY INTELLECTUAL PROPERTY IT, OR ANY THIRD PARTIES, OWN OR CONTROL.Title to the copyright in the Distribution will at all times remain with the OSGi
Alliance. The example companies, organizations, products, domain names, e-mailaddresses, logos, people, places, and events depicted therein are fictitious. Noassociation with any real company, organization, product, domain name, emailaddress, logo, person, place, or event is intended or should be inferred.
THE DISTRIBUTION IS PROVIDED "AS IS," AND THE OSGi ALLIANCE (INCLUDINGANY THIRD PARTIES THAT HAVE CONTRIBUTED TO THE DISTRIBUTION) MAKESNO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING,BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR APARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTSOF THE DISTRIBUTION ARE SUITABLE FOR ANY PURPOSE; NOR THAT THEIMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRDPARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
NEITHER THE OSGi ALLIANCE NOR ANY THIRD PARTY WILL BE LIABLE FOR ANY
DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGESARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THEDISTRIBUTION.
Implementation of certain elements of this Distribution may be subject to third partyintellectual property rights, including without limitation, patent rights (such a thirdparty may or may not be a member of the OSGi Alliance). The OSGi Alliance is notresponsible and shall not be held responsible in any manner for identifying or failingto identify any or all such third party intellectual property rights.
The Distribution is a draft. As a result, the final product may change substantially bythe time of final publication, and you are cautioned against relying on the content ofthis Distribution.
The OSGi Alliance is willing to receive input, suggestions and other feedback(Feedback) on the Distribution. By providing such Feedback to the OSGi Alliance,
you grant to the OSGi Alliance and all its Members a non-exclusive, non-transferable,worldwide, perpetual, irrevocable, royalty-free copyright license to copy, publish,license, modify, sublicense or otherwise distribute and exploit your Feedback for anypurpose. Likewise, if incorporation of your Feedback would cause an implementationof the Distribution, including as it may be modified, amended, or published at anypoint in the future (Future Specification), to necessarily infringe a patent or patentapplication that you own or control, you hereby commit to grant to all implementersof such Distribution or Future Specification an irrevocable, worldwide,sublicenseable, royalty free license under such patent or patent application to make,have made, use, sell, offer for sale, import and export products or services thatimplement such Distribution or Future Specification. You warrant that (a) to the bestof your knowledge you have the right to provide this Feedback, and if you areproviding Feedback on behalf of a company, you have the rights to provide Feedbackon behalf of your company; (b) the Feedback is not confidential to you and does notviolate the copyright or trade secret interests of another; and (c) to the best of yourknowledge, use of the Feedback would not cause an implementation of theDistribution or a Future Specification to necessarily infringe any third-party patent orpatent application known to you. You also acknowledge that the OSGi Alliance is notrequired to incorporate your Feedback into any version of the Distribution or a FutureSpecification.
I HEREBY ACKNOWLEDGE AND AGREE TO THE TERMS AND CONDITIONSDELINEATED ABOVE.
7/21/2019 osgi specificaiton
5/735
OSGi Service Platform Release 4 ii-724
Trademarks
OSGi is a trademark, registered trademark, or service mark of the OSGiAlliance in the US and other countries. Java is a trademark, registered trade-mark, or service mark of Sun Microsystems, Inc. in the US and other coun-
tries. All other trademarks, registered trademarks, or service marks used inthis document are the property of their respective owners and are herebyrecognized.
Feedback
This specification can be downloaded from the OSGi Alliance web site:
http://www.osgi.org
Comments about this specification can be submitted to:
http://www.osgi.org/bugzilla/
7/21/2019 osgi specificaiton
6/735
OSGi Service Platform Release 4 iv-724
1 Introduction 1
1.1 Reader Level . . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . . 1
1.2 Version Information . . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . . 1
1.3 Changes 4.1 . . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. 2
1.4 References . . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .3
101 Log Service Specification 5
101.1 Introduction... . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . 5
101.2 The Log Service Interface... . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . .6
101.3 Log Level and Error Severity ... . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. 7
101.4 Log Reader Service ... . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . .8
101.5 Log Entry Interface ... . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. 8
101.6 Mapping of Events... . . . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . .9
101.7 Security ... . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . 11
101.8 org.osgi.service.log ... . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . 11
102 Http Service Specification 17
102.1 Introduction... . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . 17
102.2 Registering Servlets ... . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . 18102.3 Registering Resources ... . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. .20
102.4 Mapping HTTP Requests to Servlet and Resource Registrat ions . . .. . .. . .. . .. . .. . .. . .. . .. 22
102.5 The Default Http Context Object ... . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . 23
102.6 Multipurpose Internet Mail Extension (MIME) Types... . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . 24
102.7 Authentication... .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . 25
102.8 Security ... . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . 27
102.9 Configuration Properties... . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . .28
102.10 Changes 4.1 ... . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . .28102.11 org.osgi.service.http ... . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .28
102.12 References ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. 34
103 Device Access Specification 35
103.1 Introduction... . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . 35
103.2 Device Services ... . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . 37
103.3 Device Category Specifications ... . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. .40
103.4 Driver Services ... . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .42
103.5 Driver Locator Service... . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . .49
103.6 The Driver Selector Service ... . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . 51
103.7 Device Manager ... . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . 52
103.8 Security ... . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .58
Table Of Contents
7/21/2019 osgi specificaiton
7/735
7/21/2019 osgi specificaiton
8/735
OSGi Service Platform Release 4 vi-724
106.5 Cleanup .... .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . 141
106.6 org.osgi.service.prefs ... . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . 142
106.7 References ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . . 153
107 User Admin Service Specification 155
107.1 Introduction... . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . 155
107.2 Authentication.... . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . 158
107.3 Authorization ... . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . 160
107.4 Repository Maintenance ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . 163
107.5 User Admin Events ... . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . 163
107.6 Security ... . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . 164
107.7 Relation to JAAS .... .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . 165
107.8 org.osgi.service.useradmin ... . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . 166
107.9 References ... . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . 178
108 Wire Admin Service Specification 179
108.1 Introduction... . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . 179
108.2 Producer Service ... . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . 182
108.3 Consumer Service ... . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . 185
108.4 Implementation issues ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . 187
108.5 Wire Properties... . . . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . 188
108.6 Composite objects ... . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . 189
108.7 Wire Flow Control .. . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. 193
108.8 Flavors ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . . 197
108.9 Converters... . . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . 197
108.10 Wire Admin Service Implementation ... . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . 197
108.11 Wire Admin Listener Service Events ... . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . 198
108.12 Connecting External Entities... . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . .200
108.13 Related Standards ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . 201
108.14 Security ... . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .202
108.15 org.osgi.service.wireadmin ... . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .202
108.16 References ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . 221
109 IO Connector Service Specification 223
109.1 Introduction... . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .223
109.2 The Connector Framework ... . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .224
109.3 Connector Service ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. 226
109.4 Providing New Schemes ... . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . 227109.5 Execution Environment ... . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .228
109.6 Security ... . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. 228
109.7 org.osgi.service.io ... . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. 229
109.8 References ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .232
7/21/2019 osgi specificaiton
9/735
vi i-724 OSGi Service Platform Release 4
110 Initial Provisioning 233
110.1 Introduction ... . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .233
110.2 Procedure... . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . ..234
110.3 Special Configurations ... . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . ..239
110.4 The Provisioning Service ... . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .240
110.5 Management Agent Environment ... . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . .. . . .240
110.6 Mapping To File Scheme .... . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . .241
110.7 Mapping To HTTP(S) Scheme .... . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . 241
110.8 Mapping To RSH Scheme .... .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. .243
110.9 Exception Handling... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .247
110.10 Security... . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . .248
110.11 Changes ... . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . ..249
110.12 org.osgi.service.provisioning... . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . ..249
110.13 References ... . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . .253
111 UPnP Device Service Specification 255
111.1 Introduction ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . 255
111.2 UPnP Specifications ... . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .257
111.3 UPnP Device... . . . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . .259
111.4 Device Category ... . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. 261
111.5 UPnPService ... . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .261111.6 Working With a UPnP Device ... . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . 261
111.7 Implementing a UPnP Device ... . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . .262
111.8 Event API.. . . . . . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. .262
111.9 UPnP Events and Event Admin service ... . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .264
111.10 Localization ... . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. .264
111.11 Dates and Times ... . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .264
111.12 UPnP Exception... . . . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .265
111.13 Configuration... . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . .265111.14 Networking considerations ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. .266
111.15 Security... . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. .266
111.16 org.osgi.service.upnp .... .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. .266
111.17 References ... . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . .281
112 Declarative Services Specification 283
112.1 Introduction ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. .283
112.2 Components ... . . .. . . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . .. . . .286
112.3 References to Services ... . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. .289
112.4 Component Description ... . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . ..296
112.5 Component Life Cycle ... . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . .301
112.6 Component Properties ... . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . 311
7/21/2019 osgi specificaiton
10/735
OSGi Service Platform Release 4 viii-724
112.7 Deployment... . . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. 312
112.8 Service Component Runtime .... . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . 313
112.9 Security ... . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . . 314
112.10 Component Description Schema .... . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . 315
112.11 Changes 4.2 ... . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . 318
112.12 org.osgi.service.component... . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . 319
112.13 References ... . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . 325
113 Event Admin Service Specification 327
113.1 Introduction... . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . 327
113.2 Event Admin Architecture ... . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . .329
113.3 The Event... .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . 329
113.4 Event Handler ... . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .330
113.5 Event Publisher ... . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . 331
113.6 Specific Events ... . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . 332
113.7 Event Admin Service ... . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . 335
113.8 Reliabil ity ... . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . 337
113.9 Inter-operabil ity with Native Applications ... . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . 337
113.10 Security ... . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. 338
113.11 Changes ... . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . 339
113.12 org.osgi.service.event ... . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . 339
114 Deployment Admin Specification 347
114.1 Introduction... . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . 347
114.2 Deployment Package... . . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . 349
114.3 File Format.... . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . 352
114.4 Fix Package ... . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . .360
114.5 Customizer ... . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . 361
114.6 Deployment Admin Service ... . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . 363
114.7 Sessions... . . . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .364
114.8 Install ing a Deployment Package ... . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . 367
114.9 Uninstal ling a Deployment Package . . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. 373
114.10 Resource Processors ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . 374
114.11 Events ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. 380
114.12 Threading ... . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .380
114.13 Security ... . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . 381
114.14 Changes ... . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . 382
114.15 org.osgi.service.deploymentadmin ... . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .382
114.16 org.osgi.service.deploymentadmin.spi .. . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. 397
114.17 References ... . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .404
115 Auto Configuration Specification 405
7/21/2019 osgi specificaiton
11/735
7/21/2019 osgi specificaiton
12/735
OSGi Service Platform Release 4 x-724
119.6 Security ... . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . . 581
119.7 org.osgi.service.monitor ... . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . 581
119.8 References ... . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . 596
120 Foreign Application Access Specification 597
120.1 Introduction... . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . 597
120.2 Foreign Applications... . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .598
120.3 Application Containers... .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .604
120.4 Application Descriptor Resource ... . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . .605
120.5 Component Description Schema .... . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . .607
120.6 Security ... . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . .608
120.7 org.osgi.application ... . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .609
120.8 References ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . 616
701 Tracker Specification 617
701.1 Introduction... . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . 617
701.2 Tracking ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . 618
701.3 Service Tracker Class ... . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . . 621
701.4 Bundle Tracker ... . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .623
701.5 Security ... . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . .628
701.6 org.osgi.util.tracker ... . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . .628
702 XML Parser Service Specification 641
702.1 Introduction... . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . 641
702.2 JAXP ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .642
702.3 XML Parser service ... . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .643
702.4 Properties ... . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .643
702.5 Getting a Parser Factory... . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . .644
702.6 Adapting a JAXP Parser to OSGi ... . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .644
702.7 Usage of JAXP ... . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . .646702.8 Security ... . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . 647
702.9 org.osgi.util.xml... . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .647
702.10 References ... . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .650
703 Position Specification 651
703.1 Introduction... . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . 651
703.2 Positioning... . . . . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. 652
703.3 Units ... . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .652
703.4 Optimizations... . . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . 652
703.5 Errors ... . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . 652
703.6 Using Position With Wire Admin... . . . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . 653
703.7 Related Standards ... . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . 653
7/21/2019 osgi specificaiton
13/735
xi -724 OSGi Service Platform Release 4
703.8 Security... . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. .653
703.9 org.osgi.util .position ... . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . .653
703.10 References ... . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .654
704 Measurement and State Specification 657
704.1 Introduction ... . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. .657
704.2 Measurement Object... . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .659
704.3 Error Calculations ... . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . 660
704.4 Constructing and Comparing Measurements . . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. 660
704.5 Unit Object ... . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. 661
704.6 State Object ... . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. .663
704.7 Related Standards... . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .664
704.8 Security Considerations ... . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. .664
704.9 Changes ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . .664
704.10 org.osgi.util .measurement ... . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . .664
704.11 References ... . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . .673
999 Execution Environment Specification 675
999.1 Introduction ... . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. .675
999.2 About Execution Environments ... . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . ..676
999.3 OSGi Defined Execution Environments ... . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . .676
999.4 Changes 4.1 ... . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .. . . . . .. . . . .. . . . . .. . . . . .. . . . . .. . 721
7/21/2019 osgi specificaiton
14/735
OSGi Service Platform Release 4 1-724
Introduction Reader Level
1 IntroductionThis compendium contains the specifications of all OSGi services.
1.1 Reader Level
This specification is written for the following audiences:
Application developers Framework and system service developers (system developers) Architects
This specification assumes that the reader has at least one year of practical
experience in writing Java programs. Experience with embedded systemsand server-environments is a plus. Application developers must be awarethat the OSGi environment is significantly more dynamic than traditionaldesktop or server environments.
System developers require a verydeep understanding of Java. At least threeyears of Java coding experience in a system environment is recommended. AFramework implementation will use areas of Java that are not normallyencountered in traditional applications. Detailed understanding is requiredof class loaders, garbage collection, Java 2 security, and Java native libraryloading.
Architects should focus on the introduction of each subject. This introduc-tion contains a general overview of the subject, the requirements that influ-enced its design, and a short description of its operation as well as theentities that are used. The introductory sections require knowledge of Javaconcepts like classes and interfaces, but should not require coding experi-ence.
Most of these specifications are equally applicable to application developersand system developers.
1.2 Version InformationThis document specifies OSGi Service Platform Release 4, Version 4.1. Thisspecification is backward compatible.
Components in this specification have their own specification version,independent of the OSGi Service Platform, Release 4, Version 4.1 specifica-tion. The following table summarizes the packages and specification ver-sions for the different subjects.
Table 1.1 Packages and versions
Item Package Version
101 Log Service Specif ication org.osgi .serv ice. log Version 1.3
102 Http Service Specif ication org.osgi .serv ice.http Version 1.2
103 Device Access Specif ication org.osgi .serv ice.device Version 1.1
7/21/2019 osgi specificaiton
15/735
Changes 4.1 Introduction
2-72 4 OSGi Service Platform Release 4
When a component is represented in a bundle, a vers ion attribute is neededin the declaration of the Import-Package or Export-Package manifest head-ers.
1.3 Changes 4.1 Added the chapters that were part of the Mobile Specifications:
114 Deployment Admin Specification
115 Auto Configuration Specification 116 Application Admin Service Specification 117 DMT Admin Service Specification 119 Monitor Admin Service Specification 120 Foreign Application Access Specification
104 Conf iguration Admin Service Specif i-cation
org.osgi .serv ice.cm Version 1.2
105 Metatype Service Specif ication org.osgi .serv ice.metatype Version 1.1106 Preferences Service Specif ication org.osgi .serv ice.prefs Versio n 1.1
107 User Admin Service Specif ication org.osgi .serv ice.useradmin Version 1.1
108 Wire Admin Service Specif ication org.osgi .serv ice.wireadmin Version 1.0
109 IO Connector Service Specif ication org.osgi .serv ice. io Version 1.0
110 Init ia l Provis ioning org.osgi .serv ice.provis ioning Versio n 1.2
111 UPnP Device Service Specif ication org.osgi .serv ice.upnp Version 1.1
112 Declarative Services Specif ication org.osgi .serv ice.component Versio n 1.1
113 Event Admin Service Specif ication org.osgi .serv ice.event Version 1.2
114 Deployment Admin Specif ication org.osgi .serv ice.deploymentadminorg.osgi .serv ice. deploymentadmin.spi
Version 1.1
115 Auto Conf iguration Specif ication Versio n 1.2
116 Application Admin Specif ication org.osgi .serv ice.application Version 1.1
117 DMT Admin Service Specif ication info.dmtreeinfo.dmtree.notif icationinfo.dmtree.notif ication.spiinfo.dmtree.registry
info.dmtree.securityinfo.dmtree.spi
Version 1.0
119 Monitor Admin Service Specif ication org.osgi .serv ice.monitor Version 1.0
120 Foreign Application Access Specif ica-tion
org.osgi .application Version 1.0
701 Tracker Specif ication org.osgi .uti l . tracker Version 1.4
702 XML Parser Service Specif ication org.osgi .uti l .xml Version 1.0
703 Posit ion Specif ication org.osgi .uti l .posit ion Versio n 1.0
704 Measurement and State Specif ication org.osgi .uti l .measurement Version 1.1
999 Execut ion Environment Speci fication Vers ion 1.2
Table 1.1 Packages and versions
Item Package Version
http://../core/book.pdfhttp://../core/book.pdf7/21/2019 osgi specificaiton
16/735
OSGi Service Platform Release 4 3-724
Introduction References
1.4 References[1] Bradner, S., Key words for use in RFCs to Indicate Requirement Levels
http://www.ietf.org/rfc/rfc2119.txt, March 1997.
[2] OSGi Service Gateway Specification 1.0http://www.osgi.org/resources/spec_download.asp
[3] OSGi Service Platform, Release 2, October 2001http://www.osgi.org/resources/spec_download.asp
[4] OSGi Service Platform, Release 3, March 2003http://www.osgi.org/resources/spec_download.asp
7/21/2019 osgi specificaiton
17/735
7/21/2019 osgi specificaiton
18/735
OSGi Service Platform Release 4 5-724
Log Service Specification Version 1.3 Introduction
101 Log Service
SpecificationVersion 1.3
101.1 Introduction
The Log Service provides a genseral purpose message logger for the OSGiService Platform. It consists of two services, one for logging information and
another for retrieving current or previously recorded log information.
This specification defines the methods and semantics of interfaces whichbundle developers can use to log entries and to retrieve log entries.
Bundles can use the Log Service to log information for the Operator. Otherbundles, oriented toward management of the environment, can use the LogReader Service to retrieve Log Entry objects that were recorded recently or toreceive Log Entry objects as they are logged by other bundles.
101.1.1 Entities
LogService The service interface that allows a bundle to log infor-mation, including a message, a level, an exception, a ServiceReferenceobject, and a Bundle object.
LogEntry- An interface that allows access to a log entry in the log. Itincludes all the information that can be logged through the Log Serviceand a time stamp.
LogReaderService- A service interface that allows access to a list of recentLogEntry objects, and allows the registration of a LogListener object thatreceives LogEntry objects as they are created.
LogListener- The interface for the listener to LogEntry objects. Must be
registered with the Log Reader Service.
7/21/2019 osgi specificaiton
19/735
The Log Service Interface Log Service Specification Version 1.3
6- 724 OSGi Service Platform Release 4
Figure 101.1 Log Service Class Diagram org.osgi.service. log package
101.2 The Log Service Interface
The LogService interface allows bundle developers to log messages that canbe distributed to other bundles, which in turn can forward the loggedentries to a file system, remote system, or some other destination.
The LogService interface allows the bundle developer to:
Specify a message and/or exception to be logged. Supply a log level representing the severity of the message being logged.
This should be one of the levels defined in the LogService interface but itmay be any integer that is interpreted in a user-defined way.
Specify the Service associated with the log requests.
By obtaining a LogService object from the Framework service registry, a
bundle can start logging messages to the LogService object by calling one ofthe LogService methods. A Log Service object can log any message, but it isprimarily intended for reporting events and error conditions.
The LogService interface defines these methods for logging messages:
log( int, Str ing) This method logs a simple message at a given log level. log( int, Str ing, Throwable) This method logs a message with an
exception at a given log level. log(ServiceReference, int, Str ing) This method logs a message asso-
ciated with a specific service. log(ServiceReference, int, Str ing, Throwable) This method logs a
message with an exception associated with a specific service.
While it is possible for a bundle to call one of the log methods without pro-viding a ServiceReference object, it is recommended that the caller supplythe ServiceReferenceargument whenever appropriate, because it providesimportant context information to the operator in the event of problems.
LogService
LogReaderService
LogEntry
LogListener
a Log ReaderService impl.
LogEntry impl
a Log user bundle
a Log Serviceimpl
a Log reader user
Log amessage
Store a message in the log for retrieval
message log
send new log entry
retrieve log
1 11
0..n (impl dependent maximum)
1
0..n
LogEntry has references toServiceReference,Throwable and Bundle
or registerlistener
Bundle usingLog Service
Bundle usingLog ReaderService
Log implementation bundle
7/21/2019 osgi specificaiton
20/735
OSGi Service Platform Release 4 7-724
Log Service Specification Version 1.3 Log Level and Error Severity
The following example demonstrates the use of a log method to write a mes-sage into the log.
logService.log(myServiceReference,LogService.LOG_INFO,"myService is up and running"
);
In the example, the myServiceReferenceparameter identifies the serviceassociated with the log request. The specified level, LogService.LOG_INFO,indicates that this message is informational.
The following example code records error conditions as log messages.
try {FileInputStream fis = new FileInputStream("myFile");int b;
while ( (b = fis.read()) != -1 ) {...
}fis.close();
}catch ( IOException exception ) {
logService.log(myServiceReference,LogService.LOG_ERROR,"Cannot access file",
exception );}
Notice that in addition to the error message, the exception itself is alsologged. Providing this information can significantly simplify problem deter-mination by the Operator.
101.3 Log Level and Error Severity
The log methods expect a log level indicating error severity, which can be
used to filter log messages when they are retrieved. The severity levels aredefined in the LogService interface.
Callers must supply the log levels that they deem appropriate when makinglog requests. The following table lists the log levels.
Table 101.2 Log Levels
Level Descriptions
LOG_DEBUG Used for problem determination and may be irrelevant to anyone but thebundle developer.
LOG_ERROR Indicates the bundle or service may not be functional. Action should be
taken to correct this situation.
LOG_INFO May be the result of any change in the bundle or service and does not indi-cate a problem.
LOG_WARNING Indicates a bundle or service is still functioning but may experience prob-lems in the future because of the warning condition.
7/21/2019 osgi specificaiton
21/735
Log Reader Service Log Service Specification Version 1.3
8- 724 OSGi Service Platform Release 4
101.4 Log Reader Service
The Log Reader Service maintains a list of LogEntry objects called the log.The Log Reader Service is a service that bundle developers can use to
retrieve information contained in this log, and receive notifications aboutLogEntry objects when they are created through the Log Service.
The size of the log is implementation-specific, and it determines how farinto the past the log entries go. Additionally, some log entries may not berecorded in the log in order to save space. In particular, LOG_DEBUGlogentries may not be recorded. Note that this rule is implementation-depen-dent. Some implementations may allow a configurable policy to ignore cer-tain LogEntry object types.
The LogReaderService interface defines these methods for retrieving logentries.
getLog() This method retrieves past log entries as an enumeration withthe most recent entry first.
addLogListener(LogListener) This method is used to subscribe to theLog Reader Service in order to receive log messages as they occur. Unlikethe previously recorded log entries, all log messages must be sent to sub-scribers of the Log Reader Service as they are recorded.A subscriber to the Log Reader Service must implement the LogListener interface.After a subscription to the Log Reader Service has been started, the sub-scriber's LogListener. logged method must be called with a LogEntry object for the message each time a message is logged.
The LogListener interface defines the following method:
logged(LogEntry) This method is called for each LogEntry objectcreated. A Log Reader Service implementation must not filter entries tothe LogListener interface as it is allowed to do for its log. A LogListener object should see all LogEntry objects that are created.
The delivery of LogEntry objects to the LogListener object should be doneasynchronously.
101.5 Log Entry Interface
The LogEntry interface abstracts a log entry. It is a record of the informationthat was passed when an event was logged, and consists of a superset ofinformation which can be passed through the LogService methods. TheLogEntry interface defines these methods to retrieve information related toLogEntry objects:
getBundle() This method returns the Bundle object related to a Log-
Entry object. getException() This method returns the exception related to a Log-Entry object. In some implementations, the returned exception may notbe the original exception. To avoid references to a bundle definedexception class, thus preventing an uninstalled bundle from beinggarbage collected, the Log Service may return an exception object of an
7/21/2019 osgi specificaiton
22/735
OSGi Service Platform Release 4 9-724
Log Service Specification Version 1.3 Mapping of Events
implementation defined Throwable subclass. This object will attempt toreturn as much information as possible, such as the message and stacktrace, from the original exception object .
getLevel() This method returns the severity level related to a LogEntry object.
getMessage() This method returns the message related to a LogEntry object.
getServiceReference() This method returns the ServiceReferenceobject of the service related to a LogEntry object.
getTime() This method returns the time that the log entry was created.
101.6 Mapping of Events
Implementations of a Log Service must log Framework-generated eventsand map the information to LogEntry objects in a consistent way. Frame-work events must be treated exactly the same as other logged events and dis-tributed to all LogListener objects that are associated with the Log ReaderService. The following sections define the mapping for the three differentevent types: Bundle, Service, and Framework.
101.6.1 Bundle Events Mapping
A Bundle Event is mapped to a LogEntry object according to Table 101.3,Mapping of Bundle Events to Log Entries, on page 9.
101.6.2 Service Events Mapping
A Service Event is mapped to a LogEntry object according to Table 101.4,Mapping of Service Events to Log Entries, on page 10.
101.6.3 Framework Events Mapping
A Framework Event is mapped to a LogEntry object according to Table101.5, Mapping of Framework Event to Log Entries, on page 10.
Table 101 .3 M ap pin g o f B un dle Ev ent s to Log En tr ies
Log Entry method Information about Bundle EventgetLevel() LOG_INFO
getBundle() Identifies the bundle to which the event happened. In other words, itidentifies the bundle that was installed, started, stopped, updated, oruninstalled. This identification is obtained by calling getBundle() on the BundleEvent object.
getException() nul l
g e tS er vi ce Re fe re nc e( ) n ul l
getMessage() The message depends on the event type:
INSTALLED "BundleEvent INSTALLED" STARTED "BundleEvent STARTED" STOPPED "BundleEvent STOPPED" UPDATED "BundleEvent UPDATED" UNINSTALLED "BundleEvent UNINSTALLED" RESOLVED "BundleEvent RESOLVED" UNRESOLVED "BundleEvent UNRESOLVED"
7/21/2019 osgi specificaiton
23/735
Mapping of Events Log Service Specification Version 1.3
10 -724 OSGi Service Platform Release 4
101.6.4 Log Events
Log events must be delivered by the Log Service implementation to theEvent Admin service (if present) asynchronously under the topic:
org/osgi/service/log/LogEntry/
The logging level is used as event type:
LOG_ERRORLOG_WARNINGLOG_INFO
Table 1 01. 4 Map pin g o f Se rv ic e Ev en ts t o Lo g Ent rie s
Log Entry method Information about Service Event
getLevel() LOG_INFO , except for the ServiceEvent.MODIFIED event. Thisevent can happen frequently and contains relatively little informa-tion. It must be logged with a level of LOG_DEBUG.
getBundle() Identifies the bundle that registered the service associated withthis event. It is obtained by callinggetServiceReference() .getBundle()on the ServiceEvent object.
getException() nul l
getServiceReference() Identifies a reference to the service associated with the event. It isobtained by calling getServiceReference()on the ServiceEventobject.
getMessage() This message depends on the actual event type. The messages aremapped as follows:
REGISTERED "ServiceEvent REGISTERED" MODIFIED "ServiceEvent MODIFIED" UNREGISTERING "ServiceEvent UNREGISTERING"
Table 101. 5 M app ing of Fr ame wo rk Ev ent to Lo g Ent rie s
Log Entry method Information about Framework Event
getLevel() LOG_INFO , except for the FrameworkEvent.ERRORevent. This eventrepresents an error and is logged with a level of LOG_ERROR.
getBundle() Identifies the bundle associated with the event. This may be the sys-tem bundle. It is obtained by calling getBundle() on theFrameworkEvent object.
getException() Identifies the exception associated with the error. This will be nullfor event types other than ERROR. It is obtained by callinggetThrowable() on the FrameworkEvent object.
g e tS er vi ce Re fe re nc e( ) n u ll
getMessage() This message depends on the actual event type. The messages aremapped as follows:
STARTED "FrameworkEvent STARTED" ERROR "FrameworkEvent ERROR" PACKAGES_REFRESHED "FrameworkEvent PACKAGES
REFRESHED" STARTLEVEL_CHANGED "FrameworkEvent STARTLEVEL
CHANGED" WARNING "FrameworkEvent WARNING" INFO "FrameworkEvent INFO"
7/21/2019 osgi specificaiton
24/735
OSGi Service Platform Release 4 11-724
Log Service Specification Version 1.3 Security
LOG_DEBUGLOG_OTHER (when event is not recognized)
The properties of a log event are:
bundle. id (Long) The source bundle's id.
bundle.symbolicName (String) The source bundle's symbolic name.Only set if not null .
bundle (Bundle) The source bundle. log. level (Integer) The log level. message (String) The log message. t imestamp (Long) The log entry's timestamp. log.entry (LogEntry) The LogEntry object.
If the log entry has an associated Exception:
exception.c lass (String) The fully-qualified class name of the attachedexception. Only set if the getExceptionmethod returns a non-null value.
exception.message (String) The message of the attached Exception.Only set if the Exception message is not null .
exception (Throwable) The Exception returned by the getException method.
If the getServiceReferencemethod returns a non-null value:
serv ice (ServiceReference) The result of the getServiceReferencemethod.
serv ice. id (Long) The id of the service. serv ice.pid (String) The service's persistent identity. Only set if the
service.pid service property is not null . serv ice.objectClass (String[]) The object class of the service object.
101.7 Security
The Log Service should only be implemented by trusted bundles. This bun-dle requires ServicePermiss ion[LogService|LogReaderService, REGISTER] .Virtually all bundles should get ServicePermiss ion[LogService, GET] . TheServicePermiss ion[LogReaderService, GET] should only be assigned to
trusted bundles.
101.8 org.osgi.service.log
Log Service Package Version 1.3.
Bundles wishing to use this package must list the package in the Import-Package header of the bundles manifest. For example:
Import-Package: org.osgi.service.log; version=[1.3,2.0)
101.8.1 Summary LogEntry - Provides methods to access the information contained in an
individual Log Service log entry. LogListener - Subscribes to LogEntry objects from the LogReaderService.
7/21/2019 osgi specificaiton
25/735
org.osgi.service.log Log Service Specification Version 1.3
12 -72 4 OSGi Service Platform Release 4
LogReaderService - Provides methods to retrieve LogEntry objects fromthe log.
LogService - Provides methods for bundles to write messages to the log.LogEntry
101.8.2 public interface LogEntry
Provides methods to access the information contained in an individual LogService log entry.
A LogEntry object may be acquired from the LogReaderService.getLogmethod or by registering a LogListener object.
See Also LogReaderService.getLog, LogListener
Concurrency Thread-safegetBundle()
101.8.2.1 public Bundle getBundle( )
Returns the bundle that created this LogEntry object.
Returns The bundle that created this LogEntry object; null if no bundle is associatedwith this LogEntry object.getException()
101.8.2.2 public Throwable getException( )
Returns the exception object associated with this LogEntry object.
In some implementations, the returned exception may not be the originalexception. To avoid references to a bundle defined exception class, thus pre-venting an uninstalled bundle from being garbage collected, the Log Servicemay return an exception object of an implementation defined Throwable
subclass. The returned object will attempt to provide as much informationas possible from the original exception object such as the message and stacktrace.
Returns Throwable object of the exception associated with this LogEntry;null if noexception is associated with this LogEntry object.getLevel()
101.8.2.3 public int getLevel( )
Returns the severity level of this LogEntry object.
This is one of the severity levels defined by the LogService interface.
Returns Severity level of this LogEntry object.See Also LogService.LOG_ERROR, LogService.LOG_WARNING,
LogService.LOG_INFO, LogService.LOG_DEBUGgetMessage()
101.8.2.4 public String getMessage( )
Returns the human readable message associated with this LogEntry object.
Returns String containing the message associated with this LogEntry object.getServiceReference()
101.8.2.5 public ServiceReference getServiceReference( )
Returns the ServiceReference object for the service associated with thisLogEntry object.
Returns ServiceReference object for the service associated with this LogEntry object;null if no ServiceReference object was provided.getTime()
7/21/2019 osgi specificaiton
26/735
OSGi Service Platform Release 4 13-724
Log Service Specification Version 1.3 org.osgi.service.log
101.8.2.6 public long getTime( )
Returns the value of currentTimeMillis() at the time this LogEntry objectwas created.
Returns The system time in milliseconds when this LogEntry object was created.
See Also System.currentTimeMillis()LogListener
101.8.3 public interface LogListenerextends EventListener
Subscribes to LogEntry objects from the LogReaderService.
A LogListener object may be registered with the Log Reader Service usingthe LogReaderService.addLogListener method. After the listener is regis-tered, the logged method will be called for each LogEntry object created. TheLogListener object may be unregistered by calling the LogReaderSer-
vice.removeLogListener method.
See Also LogReaderService, LogEntry,LogReaderService.addLogListener(LogListener),LogReaderService.removeLogListener(LogListener)
Concurrency Thread-safelogged(LogEntry)
101.8.3.1 public void logged( LogEntry entry )
entry A LogEntry object containing log information.
Listener method called for each LogEntry object created.
As with all event listeners, this method should return to its caller as soon aspossible.
See Also LogEntryLogReaderService
101.8.4 public interface LogReaderService
Provides methods to retrieve LogEntry objects from the log.
There are two ways to retrieve LogEntry objects:
The primary way to retrieve LogEntry objects is to register a LogListener
object whose LogListener.logged method will be called for each entryadded to the log.
To retrieve past LogEntry objects, the getLog method can be called whichwill return an Enumeration of all LogEntry objects in the log.
See Also LogEntry, LogListener, LogListener.logged(LogEntry)
Concurrency Thread-safeaddLogListener(LogListener)
101.8.4.1 public void addLogListener( LogListener listener )
listener A LogListener object to register; the LogListener object is used to receive Lo-
gEntry objects. Subscribes to LogEntry objects.
This method registers a LogListener object with the Log Reader Service. TheLogListener.logged(LogEntry) method will be called for each LogEntryobject placed into the log.
7/21/2019 osgi specificaiton
27/735
org.osgi.service.log Log Service Specification Version 1.3
14 -724 OSGi Service Platform Release 4
When a bundle which registers a LogListener object is stopped or otherwisereleases the Log Reader Service, the Log Reader Service must remove all ofthe bundles listeners.
If this Log Reader Services list of listeners already contains a listener l suchthat (l==listener), this method does nothing.
See Also LogListener, LogEntry, LogListener.logged(LogEntry)getLog()
101.8.4.2 public Enumeration getLog( )
Returns an Enumeration of all LogEntry objects in the log.
Each element of the enumeration is a LogEntry object, ordered with themost recent entry first. Whether the enumeration is of all LogEntry objectssince the Log Service was started or some recent past is implementation-spe-cific. Also implementation-specific is whether informational and debugLogEntry objects are included in the enumeration.
Returns An Enumeration of all LogEntry objects in the log.removeLogListener(LogListener)
101.8.4.3 publi c vo id rem ove Log Li st ene r( LogLi stener li stener )
listener A LogListener object to unregister.
Unsubscribes to LogEntry objects.
This method unregisters a LogListener object from the Log Reader Service.
If listener is not contained in this Log Reader Services list of listeners, thismethod does nothing.
See Also LogListenerLogService
101.8.5 public interface LogService
Provides methods for bundles to write messages to the log.
LogService methods are provided to log messages; optionally with a Service-Reference object or an exception.
Bundles must log messages in the OSGi environment with a severity levelaccording to the following hierarchy:
1 LOG_ERROR2 LOG_WARNING3 LOG_INFO4 LOG_DEBUG
Concurrency Thread-safeLOG_DEBUG
101.8.5.1 public static final int LOG_DEBUG = 4
A debugging message (Value 4).
This log entry is used for problem determination and may be irrelevant toanyone but the bundle developer.LOG_ERROR
101.8.5.2 public static final int LOG_ERROR = 1
An error message (Value 1).
This log entry indicates the bundle or service may not be functional.
LOG_INFO
7/21/2019 osgi specificaiton
28/735
OSGi Service Platform Release 4 15-724
Log Service Specification Version 1.3 org.osgi.service.log
101.8.5.3 public static final int LOG_INFO = 3
An informational message (Value 3).
This log entry may be the result of any change in the bundle or service anddoes not indicate a problem.
LOG_WARNING
101.8.5.4 public static final int LOG_WARNING = 2
A warning message (Value 2).
This log entry indicates a bundle or service is still functioning but may expe-rience problems in the future because of the warning condition.log(int,String)
101.8.5.5 public void log( int level, String message )
level The severity of the message. This should be one of the defined log levels butmay be any integer that is interpreted in a user defined way.
message Human readable string describing the condition or null.
Logs a message.
The ServiceReference field and the Throwable field of the LogEntry objectwill be set to null.
See Also LOG_ERROR, LOG_WARNING, LOG_INFO, LOG_DEBUGlog(int,String,Throwable)
101.8.5 .6 p ubl ic vo id lo g( int level , String mes sage, Throwa ble exce ptio n )
level The severity of the message. This should be one of the defined log levels butmay be any integer that is interpreted in a user defined way.
message The human readable string describing the condition or null.
exception The exception that reflects the condition or null.
Logs a message with an exception.
The ServiceReference field of the LogEntry object will be set to null.
See Also LOG_ERROR, LOG_WARNING, LOG_INFO, LOG_DEBUGlog(ServiceReference,int,String)
101.8.5.7 publi c voi d l og( Serv ic eRe fe re nc e s r, in t level, String mes sa ge )
sr The ServiceReference object of the service that this message is associated
with or null.
level The severity of the message. This should be one of the defined log levels butmay be any integer that is interpreted in a user defined way.
message Human readable string describing the condition or null.
Logs a message associated with a specific ServiceReference object.
The Throwable field of the LogEntry will be set to null.
See Also LOG_ERROR, LOG_WARNING, LOG_INFO, LOG_DEBUGlog(ServiceReference,int,String,Throwable)
101.8.5.8 publi c voi d l og( Serv ic eRe fe re nc e s r, in t level, String mes sa ge ,Throwable exception )
sr The ServiceReference object of the service that this message is associatedwith.
7/21/2019 osgi specificaiton
29/735
org.osgi.service.log Log Service Specification Version 1.3
16-72 4 OSGi Service Platform Release 4
level The severity of the message. This should be one of the defined log levels butmay be any integer that is interpreted in a user defined way.
message Human readable string describing the condition or null.
exception The exception that reflects the condition or null.
Logs a message with an exception associated and a ServiceReference object.
See Also LOG_ERROR, LOG_WARNING, LOG_INFO, LOG_DEBUG
7/21/2019 osgi specificaiton
30/735
OSGi Service Platform Release 4 17-724
Http Service Specification Version 1.2 Introduction
102 Http Service
SpecificationVersion 1.2
102.1 Introduction
An OSGi Service Platform normally provides users with access to serviceson the Internet and other networks. This access allows users to remotely
retrieve information from, and send control to, services in an OSGi ServicePlatform using a standard web browser.
Bundle developers typically need to develop communication and user inter-face solutions for standard technologies such as HTTP, HTML, XML, andservlets.
The Http Service supports two standard techniques for this purpose:
Registering servlets A servlet is a Java object which implements the JavaServlet API. Registering a servlet in the Framework gives it control oversome part of the Http Service URI name-space.
Registering resources Registering a resource allows HTML files, imagefiles, and other static resources to be made visible in the Http Service URIname-space by the requesting bundle.
Implementations of the Http Service can be based on:
[5] HTTP 1.0 Specification RFC-1945 [6] HTTP 1.1 Specification RFC-2616
Alternatively, implementations of this service can support other protocolsif these protocols can conform to the semantics of the javax.serv let API.This additional support is necessary because the Http Service is closelyrelated to [7] Java Servlet Technology.Http Service implementations mustsupport at least version 2.1 of the Java Servlet API.
102.1.1 Entities
This specification defines the following interfaces which a bundle devel-oper can implement collectively as an Http Service or use individually:
HttpContext Allows bundles to provide information for a servlet orresource registration.
HttpService Allows other bundles in the Framework to dynamically
register and unregister resources and servlets into the Http Service URIname-space.
NamespaceException Is thrown to indicate an error with the caller'srequest to register a servlet or resource into the Http Service URI name-space.
7/21/2019 osgi specificaiton
31/735
Registering Servlets Http Service Specification Version 1.2
18-724 OSGi Service Platform Release 4
Figure 102.2 Http Service Overview Diagram
102.2 Registering Servlets
javax.serv let.Servlet objects can be registered with the Http Service byusing the HttpService interface. For this purpose, the HttpService interfacedefines the method registerServlet(Str ing, javax.serv let.Servlet,Dictio-nary,HttpContext).
For example, if the Http Service implementation is listening to port 80 onthe machine www.acme.comand the Servlet object is registered with thename "/serv let" , then the Servlet objects service method is called when thefollowing URL is used from a web browser:
http://www.acme.com/servlet?name=bugs
All Servlet objects and resource registrations share the same name-space. Ifan attempt is made to register a resource or Servlet object under the samename as a currently registered resource or Servlet object, aNamespaceException is thrown. See Mapping HTTP Requests to Servlet andResource Registrationson page 22 for more information about the handling ofthe Http Service name-space.
Each Servlet registration must be accompanied with an HttpContext object.This object provides the handling of resources, media typing, and a methodto handle authentication of remote requests. See Authenticationon page 25.
For convenience, a default HttpContext object is provided by the Http Ser-vice and can be obtained with createDefaultHttpContext(). Passing a null parameter to the registration method achieves the same effect.
HttpService
javax.servlet.Servlet
javax.servlet.httpHttpServletRequest
javax.servlet.http
HttpServletResponse
an Http service
implementation
HttpContext
servletregistration
resourceregistration
implementation ofServlet
implementation ofHttpContext
default impl. ofHttpContext
Bundles maincode
1
0..n1
1
1
1
register servletor resources
requestresource
servicerequest
Name-spacealias
Bundle implementingHttp Service
Bundle usingHttp Service
NamespaceException
7/21/2019 osgi specificaiton
32/735
OSGi Service Platform Release 4 19-724
Http Service Specification Version 1.2 Registering Servlets
Servlet objects require a ServletContext object. This object provides a num-ber of functions to access the Http Service Java Servlet environment. It iscreated by the implementation of the Http Service for each uniqueHttpContext object with which a Servlet object is registered. Thus, Servlet objects registered with the same HttpContext object must also share the
same ServletContext object.Servlet objects are initialized by the Http Service when they are registeredand bound to that specific Http Service. The initialization is done by callingthe Servlet objects Servlet. init(ServletConf ig) method. The ServletConf ig parameter provides access to the initialization parameters specified whenthe Servlet object was registered.
Therefore, the same Servlet instance must not be reused for registrationwith another Http Service, nor can it be registered under multiple names.Unique instances are required for each registration.
The following example code demonstrates the use of the registerServlet method:
Hashtable initparams = new Hashtable();initparams.put( "name", "value" );
Servlet myServlet = new HttpServlet() {String name = "";
public void init( ServletConfig config ) {this.name = (String)
config.getInitParameter( "name" );}
public void doGet(HttpServletRequest req,HttpServletResponse rsp
) throws IOException {rsp.setContentType( "text/plain" );req.getWriter().println( this.name );
}
};
getHttpService().registerServlet("/servletAlias",myServlet,initparams,null // use default context
);// myServlet has been registered// and its init method has been called. Remote
// requests are now handled and forwarded to// the servlet....getHttpService().unregister("/servletAlias");// myServlet has been unregistered and its// destroy method has been called
7/21/2019 osgi specificaiton
33/735
Registering Resources Http Service Specification Version 1.2
20 -724 OSGi Service Platform Release 4
This example registers the servlet, myServlet, at alias: /serv letAl ias . Futurerequests for http://www.acme.com/servletAl iasmaps to the servlet,myServlet , whose service method is called to process the request. (Theservice method is called in the HttpServlet base class and dispatched to adoGet , doPut , doPost , doOptions , doTrace, or doDelete call depending onthe HTTP request method used.)
102.3 Registering Resources
A resource is a file containing images, static HTML pages, sounds, movies,applets, etc. Resources do not require any handling from the bundle. Theyare transferred directly from their source--usually the JAR file that containsthe code for the bundle--to the requestor using HTTP.
Resources could be handled by Servlet objects as explained in RegisteringServletson page 18. Transferring a resource over HTTP, however, wouldrequire very similar Servlet objects for each bundle. To prevent this redun-dancy, resources can be registered directly with the Http Service via theHttpService interface. This HttpService interface defines the registerRe-sources(Str ing,Str ing,HttpContext)method for registering a resource intothe Http Service URI name-space.
The first parameter is the external alias under which the resource is regis-tered with the Http Service. The second parameter is an internal prefix to
map this resource to the bundles name-space. When a request is received,the HttpService object must remove the external alias from the URI, replaceit with the internal prefix, and call the getResource(Str ing) method withthis new name on the associated HttpContext object. The HttpContext object is further used to get the MIME type of the resource and to authenti-cate the request.
Resources are returned as a java.net.URL object. The Http Service must readfrom this URL object and transfer the content to the initiator of the HTTPrequest.
This return type was chosen because it matches the return type of the
java. lang.Class.getResource(Str ing resource) method. This method canretrieve resources directly from the same place as the one from which theclass was loaded often a package directory in the JAR file of the bundle.This method makes it very convenient to retrieve resources from the bundlethat are contained in the package.
The following example code demonstrates the use of the registerResources method:
package com.acme;...
HttpContext context = new HttpContext() {public boolean handleSecurity(HttpServletRequest request,
HttpServletResponse response) throws IOException {
return true;
7/21/2019 osgi specificaiton
34/735
OSGi Service Platform Release 4 21-724
Http Service Specification Version 1.2 Registering Resources
}
public URL getResource(String name) {return getClass().getResource(name);
}
public String getMimeType(String name) {return null;
}};
getHttpService().registerResources ("/files","www",context
);...getHttpService().unregister("/files");
This example registers the alias /files on the Http Service. Requests forresources below this name-space are transferred to the HttpContext objectwith an internal name of www/ . This example uses the Class.getResource(Str ing) method. Because the internal name does not start with a"/", it must map to a resource in the "com/acme/www" directory of the JARfile. If the internal name did start with a "/", the package name would not
have to be prefixed and the JAR file would be searched from the root. Con-sult the java. lang.Class.getResource(Str ing)method for more information.
In the example, a request for http://www.acme.com/f i les/myf i le.htmlmustmap to the name "com/acme/www/myfi l