annotate dwtx/org/osgi/framework/Bundle.d @ 162:1a5b8f8129df

...
author Frank Benoit <benoit@tionex.de>
date Mon, 08 Sep 2008 00:51:37 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
162
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * $Header: /cvshome/build/org.osgi.framework/src/org/osgi/framework/Bundle.java,v 1.54 2007/02/21 16:49:05 hargrave Exp $
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * Copyright (c) OSGi Alliance (2000, 2007). All Rights Reserved.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * Licensed under the Apache License, Version 2.0 (the "License");
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 * you may not use this file except in compliance with the License.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * You may obtain a copy of the License at
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * http://www.apache.org/licenses/LICENSE-2.0
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 * Unless required by applicable law or agreed to in writing, software
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 * distributed under the License is distributed on an "AS IS" BASIS,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 * See the License for the specific language governing permissions and
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 * limitations under the License.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 module dwtx.org.osgi.framework.Bundle;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwt.dwthelper.utils;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 // import java.io.IOException;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 // import java.io.InputStream;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 // import java.net.URL;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 // import java.util.Dictionary;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 // import java.util.Enumeration;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 * An installed bundle in the Framework.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 * A <code>Bundle</code> object is the access point to define the lifecycle of
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 * an installed bundle. Each bundle installed in the OSGi environment must have
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 * an associated <code>Bundle</code> object.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 * A bundle must have a unique identity, a <code>long</code>, chosen by the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 * Framework. This identity must not change during the lifecycle of a bundle,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 * even when the bundle is updated. Uninstalling and then reinstalling the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 * bundle must create a new unique identity.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 * A bundle can be in one of six states:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 * <li>{@link #UNINSTALLED}
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 * <li>{@link #INSTALLED}
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 * <li>{@link #RESOLVED}
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 * <li>{@link #STARTING}
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 * <li>{@link #STOPPING}
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 * <li>{@link #ACTIVE}
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 * Values assigned to these states have no specified ordering; they represent
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 * bit values that may be ORed together to determine if a bundle is in one of
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 * the valid states.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 * A bundle should only execute code when its state is one of
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 * <code>STARTING</code>,<code>ACTIVE</code>, or <code>STOPPING</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 * An <code>UNINSTALLED</code> bundle can not be set to another state; it is a
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 * zombie and can only be reached because references are kept somewhere.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 * The Framework is the only entity that is allowed to create
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 * <code>Bundle</code> objects, and these objects are only valid within the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 * Framework that created them.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 * @ThreadSafe
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 * @version $Revision: 1.54 $
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 public interface Bundle {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 * The bundle is uninstalled and may not be used.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 * The <code>UNINSTALLED</code> state is only visible after a bundle is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 * uninstalled; the bundle is in an unusable state but references to the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 * <code>Bundle</code> object may still be available and used for
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 * introspection.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 * The value of <code>UNINSTALLED</code> is 0x00000001.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 public static const int UNINSTALLED = 0x00000001;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 * The bundle is installed but not yet resolved.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 * A bundle is in the <code>INSTALLED</code> state when it has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 * installed in the Framework but is not or cannot be resolved.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 * This state is visible if the bundle's code dependencies are not resolved.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 * The Framework may attempt to resolve an <code>INSTALLED</code> bundle's
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 * code dependencies and move the bundle to the <code>RESOLVED</code>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 * state.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 * The value of <code>INSTALLED</code> is 0x00000002.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 public static const int INSTALLED = 0x00000002;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 * The bundle is resolved and is able to be started.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 * A bundle is in the <code>RESOLVED</code> state when the Framework has
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 * successfully resolved the bundle's code dependencies. These dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 * include:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 * <li>The bundle's class path from its {@link Constants#BUNDLE_CLASSPATH}
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 * Manifest header.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 * <li>The bundle's package dependencies from its
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 * {@link Constants#EXPORT_PACKAGE} and {@link Constants#IMPORT_PACKAGE}
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 * Manifest headers.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 * <li>The bundle's required bundle dependencies from its
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 * {@link Constants#REQUIRE_BUNDLE} Manifest header.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 * <li>A fragment bundle's host dependency from its
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 * {@link Constants#FRAGMENT_HOST} Manifest header.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 * Note that the bundle is not active yet. A bundle must be put in the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 * <code>RESOLVED</code> state before it can be started. The Framework may
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 * attempt to resolve a bundle at any time.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 * The value of <code>RESOLVED</code> is 0x00000004.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 public static const int RESOLVED = 0x00000004;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 * The bundle is in the process of starting.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 * A bundle is in the <code>STARTING</code> state when its
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 * {@link #start(int) start} method is active. A bundle must be in this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 * state when the bundle's {@link BundleActivator#start} is called. If the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 * <code>BundleActivator.start</code> method completes without exception,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 * then the bundle has successfully started and must move to the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 * <code>ACTIVE</code> state.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 * If the bundle has a
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 * {@link Constants#ACTIVATION_LAZY lazy activation policy}, then the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 * bundle may remain in this state for some time until the activation is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 * triggered.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 * The value of <code>STARTING</code> is 0x00000008.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 public static const int STARTING = 0x00000008;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 * The bundle is in the process of stopping.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 * A bundle is in the <code>STOPPING</code> state when its
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 * {@link #stop(int) stop} method is active. A bundle must be in this state
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 * when the bundle's {@link BundleActivator#stop} method is called. When the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 * <code>BundleActivator.stop</code> method completes the bundle is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 * stopped and must move to the <code>RESOLVED</code> state.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 * The value of <code>STOPPING</code> is 0x00000010.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 public static const int STOPPING = 0x00000010;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 * The bundle is now running.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 * A bundle is in the <code>ACTIVE</code> state when it has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 * successfully started and activated.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 * The value of <code>ACTIVE</code> is 0x00000020.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 public static const int ACTIVE = 0x00000020;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 * The bundle start operation is transient and the persistent autostart
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 * setting of the bundle is not modified.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 * This bit may be set when calling {@link #start(int)} to notify the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 * framework that the autostart setting of the bundle must not be modified.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 * If this bit is not set, then the autostart setting of the bundle is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 * modified.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 * @since 1.4
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 * @see #start(int)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187 public static const int START_TRANSIENT = 0x00000001;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 * The bundle start operation must activate the bundle according to the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 * bundle's declared
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 * {@link Constants#BUNDLE_ACTIVATIONPOLICY activation policy}.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195 * This bit may be set when calling {@link #start(int)} to notify the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196 * framework that the bundle must be activated using the bundle's declared
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 * activation policy.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 * @since 1.4
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200 * @see Constants#BUNDLE_ACTIVATIONPOLICY
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201 * @see #start(int)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 public static const int START_ACTIVATION_POLICY = 0x00000002;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206 * The bundle stop is transient and the persistent autostart setting of the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 * bundle is not modified.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210 * This bit may be set when calling {@link #stop(int)} to notify the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 * framework that the autostart setting of the bundle must not be modified.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212 * If this bit is not set, then the autostart setting of the bundle is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213 * modified.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 * @since 1.4
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216 * @see #stop(int)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218 public static final int STOP_TRANSIENT = 0x00000001;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221 * Returns this bundle's current state.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224 * A bundle can be in only one state at any time.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
225 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
226 * @return An element of <code>UNINSTALLED</code>,<code>INSTALLED</code>,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227 * <code>RESOLVED</code>,<code>STARTING</code>,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228 * <code>STOPPING</code>,<code>ACTIVE</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230 public int getState();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233 * Starts this bundle.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
235 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236 * If this bundle's state is <code>UNINSTALLED</code> then an
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237 * <code>IllegalStateException</code> is thrown.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239 * If the Framework implements the optional Start Level service and the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 * current start level is less than this bundle's start level:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241 * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
242 * <li>If the {@link #START_TRANSIENT} option is set, then a
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
243 * <code>BundleException</code> is thrown indicating this bundle cannot be
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 * started due to the Framework's current start level.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
246 * <li>Otherwise, the Framework must set this bundle's persistent autostart
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247 * setting to <em>Started with declared activation</em> if the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
248 * {@link #START_ACTIVATION_POLICY} option is set or
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
249 * <em>Started with eager activation</em> if not set.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
250 * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
251 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
252 * When the Framework's current start level becomes equal to or more than
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
253 * this bundle's start level, this bundle will be started.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
255 * Otherwise, the following steps are required to start this bundle:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
256 * <ol>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
257 * <li>If this bundle is in the process of being activated or deactivated
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
258 * then this method must wait for activation or deactivation to complete
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
259 * before continuing. If this does not occur in a reasonable time, a
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
260 * <code>BundleException</code> is thrown to indicate this bundle was
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
261 * unable to be started.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
262 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
263 * <li>If this bundle's state is <code>ACTIVE</code> then this method
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
264 * returns immediately.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
265 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
266 * <li>If the {@link #START_TRANSIENT} option is not set then set this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
267 * bundle's autostart setting to <em>Started with declared activation</em>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
268 * if the {@link #START_ACTIVATION_POLICY} option is set or
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
269 * <em>Started with eager activation</em> if not set. When the Framework
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
270 * is restarted and this bundle's autostart setting is not <em>Stopped</em>,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
271 * this bundle must be automatically started.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
272 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
273 * <li>If this bundle's state is not <code>RESOLVED</code>, an attempt
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
274 * is made to resolve this bundle. If the Framework cannot resolve this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
275 * bundle, a <code>BundleException</code> is thrown.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
276 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
277 * <li>If the {@link #START_ACTIVATION_POLICY} option is set and this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
278 * bundle's declared activation policy is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
279 * {@link Constants#ACTIVATION_LAZY lazy} then:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
280 * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
281 * <li>If this bundle's state is <code>STARTING</code> then this method
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
282 * returns immediately.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
283 * <li>This bundle's state is set to <code>STARTING</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
284 * <li>A bundle event of type {@link BundleEvent#LAZY_ACTIVATION} is fired.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
285 * <li>This method returns immediately and the remaining steps will be
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
286 * followed when this bundle's activation is later triggered.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
287 * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
288 * <i></i>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
289 * <li>This bundle's state is set to <code>STARTING</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
290 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
291 * <li>A bundle event of type {@link BundleEvent#STARTING} is fired.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
292 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
293 * <li>The {@link BundleActivator#start} method of this bundle's
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
294 * <code>BundleActivator</code>, if one is specified, is called. If the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
295 * <code>BundleActivator</code> is invalid or throws an exception then:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
296 * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
297 * <li>This bundle's state is set to <code>STOPPING</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
298 * <li>A bundle event of type {@link BundleEvent#STOPPING} is fired.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
299 * <li>Any services registered by this bundle must be unregistered.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
300 * <li>Any services used by this bundle must be released.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
301 * <li>Any listeners registered by this bundle must be removed.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
302 * <li>This bundle's state is set to <code>RESOLVED</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
303 * <li>A bundle event of type {@link BundleEvent#STOPPED} is fired.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
304 * <li>A <code>BundleException</code> is then thrown.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
305 * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
306 * <i></i>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
307 * <li>If this bundle's state is <code>UNINSTALLED</code>, because this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
308 * bundle was uninstalled while the <code>BundleActivator.start</code>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
309 * method was running, a <code>BundleException</code> is thrown.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
310 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
311 * <li>This bundle's state is set to <code>ACTIVE</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
312 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
313 * <li>A bundle event of type {@link BundleEvent#STARTED} is fired.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
314 * </ol>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
315 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
316 * <b>Preconditions </b>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
317 * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
318 * <li><code>getState()</code> in {<code>INSTALLED</code>,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
319 * <code>RESOLVED</code>} or {<code>INSTALLED</code>,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
320 * <code>RESOLVED</code>, <code>STARTING</code>} if this bundle has a
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
321 * lazy activation policy.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
322 * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
323 * <b>Postconditions, no exceptions thrown </b>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
324 * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
325 * <li>Bundle autostart setting is modified unless the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
326 * {@link #START_TRANSIENT} option was set.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
327 * <li><code>getState()</code> in {<code>ACTIVE</code>} unless the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
328 * lazy activation policy was used.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
329 * <li><code>BundleActivator.start()</code> has been called and did not
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
330 * throw an exception unless the lazy activation policy was used.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
331 * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
332 * <b>Postconditions, when an exception is thrown </b>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
333 * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
334 * <li>Depending on when the exception occurred, bundle autostart setting
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
335 * is modified unless the {@link #START_TRANSIENT} option was set.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
336 * <li><code>getState()</code> not in {<code>STARTING</code>,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
337 * <code>ACTIVE</code>}.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
338 * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
339 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
340 * @param options The options for starting this bundle. See
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
341 * {@link #START_TRANSIENT} and {@link #START_ACTIVATION_POLICY}.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
342 * The Framework must ignore unrecognized options.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
343 * @throws BundleException If this bundle could not be started. This could
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
344 * be because a code dependency could not be resolved or the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
345 * specified <code>BundleActivator</code> could not be loaded or
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
346 * threw an exception or this bundle is a fragment.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
347 * @throws java.lang.IllegalStateException If this bundle has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
348 * uninstalled or this bundle tries to change its own state.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
349 * @throws java.lang.SecurityException If the caller does not have the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
350 * appropriate <code>AdminPermission[this,EXECUTE]</code>, and
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
351 * the Java Runtime Environment supports permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
352 * @since 1.4
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
353 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
354 public void start(int options);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
355
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
356 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
357 * Starts this bundle with no options.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
358 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
359 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
360 * This method calls <code>start(0)</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
361 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
362 * @throws BundleException If this bundle could not be started. This could
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
363 * be because a code dependency could not be resolved or the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
364 * specified <code>BundleActivator</code> could not be loaded or
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
365 * threw an exception or this bundle is a fragment.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
366 * @throws java.lang.IllegalStateException If this bundle has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
367 * uninstalled or this bundle tries to change its own state.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
368 * @throws java.lang.SecurityException If the caller does not have the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
369 * appropriate <code>AdminPermission[this,EXECUTE]</code>, and
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
370 * the Java Runtime Environment supports permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
371 * @see #start(int)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
372 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
373 public void start();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
374
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
375 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
376 * Stops this bundle.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
377 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
378 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
379 * The following steps are required to stop a bundle:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
380 * <ol>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
381 * <li>If this bundle's state is <code>UNINSTALLED</code> then an
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
382 * <code>IllegalStateException</code> is thrown.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
383 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
384 * <li>If this bundle is in the process of being activated or deactivated
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
385 * then this method must wait for activation or deactivation to complete
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
386 * before continuing. If this does not occur in a reasonable time, a
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
387 * <code>BundleException</code> is thrown to indicate this bundle was
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
388 * unable to be stopped.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
389 * <li>If the {@link #STOP_TRANSIENT} option is not set then then set this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
390 * bundle's persistent autostart setting to to <em>Stopped</em>. When the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
391 * Framework is restarted and this bundle's autostart setting is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
392 * <em>Stopped</em>, this bundle must not be automatically started.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
393 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
394 * <li>If this bundle's state is not <code>ACTIVE</code> then this method
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
395 * returns immediately.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
396 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
397 * <li>This bundle's state is set to <code>STOPPING</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
398 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
399 * <li>A bundle event of type {@link BundleEvent#STOPPING} is fired.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
400 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
401 * <li>The {@link BundleActivator#stop} method of this bundle's
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
402 * <code>BundleActivator</code>, if one is specified, is called. If that
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
403 * method throws an exception, this method must continue to stop this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
404 * bundle. A <code>BundleException</code> must be thrown after completion
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
405 * of the remaining steps.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
406 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
407 * <li>Any services registered by this bundle must be unregistered.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
408 * <li>Any services used by this bundle must be released.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
409 * <li>Any listeners registered by this bundle must be removed.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
410 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
411 * <li>If this bundle's state is <code>UNINSTALLED</code>, because this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
412 * bundle was uninstalled while the <code>BundleActivator.stop</code>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
413 * method was running, a <code>BundleException</code> must be thrown.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
414 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
415 * <li>This bundle's state is set to <code>RESOLVED</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
416 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
417 * <li>A bundle event of type {@link BundleEvent#STOPPED} is fired.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
418 * </ol>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
419 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
420 * <b>Preconditions </b>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
421 * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
422 * <li><code>getState()</code> in {<code>ACTIVE</code>}.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
423 * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
424 * <b>Postconditions, no exceptions thrown </b>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
425 * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
426 * <li>Bundle autostart setting is modified unless the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
427 * {@link #STOP_TRANSIENT} option was set.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
428 * <li><code>getState()</code> not in {<code>ACTIVE</code>,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
429 * <code>STOPPING</code>}.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
430 * <li><code>BundleActivator.stop</code> has been called and did not
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
431 * throw an exception.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
432 * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
433 * <b>Postconditions, when an exception is thrown </b>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
434 * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
435 * <li>Bundle autostart setting is modified unless the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
436 * {@link #STOP_TRANSIENT} option was set.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
437 * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
438 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
439 * @param options The options for stoping this bundle. See
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
440 * {@link #STOP_TRANSIENT}. The Framework must ignore unrecognized
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
441 * options.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
442 * @throws BundleException If this bundle's <code>BundleActivator</code>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
443 * threw an exception or this bundle is a fragment.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
444 * @throws java.lang.IllegalStateException If this bundle has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
445 * uninstalled or this bundle tries to change its own state.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
446 * @throws java.lang.SecurityException If the caller does not have the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
447 * appropriate <code>AdminPermission[this,EXECUTE]</code>, and
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
448 * the Java Runtime Environment supports permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
449 * @since 1.4
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
450 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
451 public void stop(int options);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
452
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
453 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
454 * Stops this bundle with no options.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
455 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
456 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
457 * This method calls <code>stop(0)</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
458 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
459 * @throws BundleException If this bundle's <code>BundleActivator</code>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
460 * threw an exception or this bundle is a fragment.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
461 * @throws java.lang.IllegalStateException If this bundle has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
462 * uninstalled or this bundle tries to change its own state.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
463 * @throws java.lang.SecurityException If the caller does not have the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
464 * appropriate <code>AdminPermission[this,EXECUTE]</code>, and
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
465 * the Java Runtime Environment supports permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
466 * @see #start(int)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
467 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
468 public void stop();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
469
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
470 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
471 * Updates this bundle.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
472 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
473 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
474 * If this bundle's state is <code>ACTIVE</code>, it must be stopped
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
475 * before the update and started after the update successfully completes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
476 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
477 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
478 * If this bundle has exported any packages, these packages must not be
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
479 * updated. Instead, the previous package version must remain exported until
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
480 * the <code>PackageAdmin.refreshPackages</code> method has been has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
481 * called or the Framework is relaunched.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
482 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
483 * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
484 * The following steps are required to update a bundle:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
485 * <ol>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
486 * <li>If this bundle's state is <code>UNINSTALLED</code> then an
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
487 * <code>IllegalStateException</code> is thrown.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
488 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
489 * <li>If this bundle's state is <code>ACTIVE</code>,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
490 * <code>STARTING</code> or <code>STOPPING</code>, this bundle is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
491 * stopped as described in the <code>Bundle.stop</code> method. If
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
492 * <code>Bundle.stop</code> throws an exception, the exception is rethrown
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
493 * terminating the update.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
494 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
495 * <li>The download location of the new version of this bundle is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
496 * determined from either this bundle's
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
497 * {@link Constants#BUNDLE_UPDATELOCATION} Manifest header (if available) or
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
498 * this bundle's original location.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
499 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
500 * <li>The location is interpreted in an implementation dependent manner,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
501 * typically as a URL, and the new version of this bundle is obtained from
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
502 * this location.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
503 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
504 * <li>The new version of this bundle is installed. If the Framework is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
505 * unable to install the new version of this bundle, the original version of
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
506 * this bundle must be restored and a <code>BundleException</code> must be
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
507 * thrown after completion of the remaining steps.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
508 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
509 * <li>If this bundle has declared an Bundle-RequiredExecutionEnvironment
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
510 * header, then the listed execution environments must be verified against
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
511 * the installed execution environments. If they do not all match, the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
512 * original version of this bundle must be restored and a
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
513 * <code>BundleException</code> must be thrown after completion of the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
514 * remaining steps.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
515 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
516 * <li>This bundle's state is set to <code>INSTALLED</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
517 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
518 * <li>If the new version of this bundle was successfully installed, a
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
519 * bundle event of type {@link BundleEvent#UPDATED} is fired.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
520 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
521 * <li>If this bundle's state was originally <code>ACTIVE</code>, the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
522 * updated bundle is started as described in the <code>Bundle.start</code>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
523 * method. If <code>Bundle.start</code> throws an exception, a Framework
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
524 * event of type {@link FrameworkEvent#ERROR} is fired containing the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
525 * exception.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
526 * </ol>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
527 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
528 * <b>Preconditions </b>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
529 * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
530 * <li><code>getState()</code> not in {<code>UNINSTALLED</code>}.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
531 * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
532 * <b>Postconditions, no exceptions thrown </b>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
533 * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
534 * <li><code>getState()</code> in {<code>INSTALLED</code>,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
535 * <code>RESOLVED</code>,<code>ACTIVE</code>}.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
536 * <li>This bundle has been updated.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
537 * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
538 * <b>Postconditions, when an exception is thrown </b>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
539 * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
540 * <li><code>getState()</code> in {<code>INSTALLED</code>,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
541 * <code>RESOLVED</code>,<code>ACTIVE</code>}.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
542 * <li>Original bundle is still used; no update occurred.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
543 * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
544 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
545 * @throws BundleException If the update fails.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
546 * @throws java.lang.IllegalStateException If this bundle has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
547 * uninstalled or this bundle tries to change its own state.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
548 * @throws java.lang.SecurityException If the caller does not have the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
549 * appropriate <code>AdminPermission[this,LIFECYCLE]</code> for
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
550 * both the current bundle and the updated bundle, and the Java
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
551 * Runtime Environment supports permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
552 * @see #stop()
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
553 * @see #start()
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
554 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
555 public void update();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
556
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
557 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
558 // * Updates this bundle from an <code>InputStream</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
559 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
560 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
561 // * This method performs all the steps listed in <code>Bundle.update()</code>,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
562 // * except the new version of this bundle must be read from the supplied
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
563 // * <code>InputStream</code>, rather than a <code>URL</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
564 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
565 // * This method must always close the <code>InputStream</code> when it is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
566 // * done, even if an exception is thrown.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
567 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
568 // * @param in The <code>InputStream</code> from which to read the new
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
569 // * bundle.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
570 // * @throws BundleException If the provided stream cannot be read or the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
571 // * update fails.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
572 // * @throws java.lang.IllegalStateException If this bundle has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
573 // * uninstalled or this bundle tries to change its own state.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
574 // * @throws java.lang.SecurityException If the caller does not have the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
575 // * appropriate <code>AdminPermission[this,LIFECYCLE]</code> for
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
576 // * both the current bundle and the updated bundle, and the Java
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
577 // * Runtime Environment supports permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
578 // * @see #update()
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
579 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
580 // public void update(InputStream in_);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
581 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
582 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
583 // * Uninstalls this bundle.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
584 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
585 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
586 // * This method causes the Framework to notify other bundles that this bundle
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
587 // * is being uninstalled, and then puts this bundle into the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
588 // * <code>UNINSTALLED</code> state. The Framework must remove any resources
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
589 // * related to this bundle that it is able to remove.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
590 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
591 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
592 // * If this bundle has exported any packages, the Framework must continue to
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
593 // * make these packages available to their importing bundles until the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
594 // * <code>PackageAdmin.refreshPackages</code> method has been called or the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
595 // * Framework is relaunched.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
596 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
597 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
598 // * The following steps are required to uninstall a bundle:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
599 // * <ol>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
600 // * <li>If this bundle's state is <code>UNINSTALLED</code> then an
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
601 // * <code>IllegalStateException</code> is thrown.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
602 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
603 // * <li>If this bundle's state is <code>ACTIVE</code>,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
604 // * <code>STARTING</code> or <code>STOPPING</code>, this bundle is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
605 // * stopped as described in the <code>Bundle.stop</code> method. If
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
606 // * <code>Bundle.stop</code> throws an exception, a Framework event of type
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
607 // * {@link FrameworkEvent#ERROR} is fired containing the exception.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
608 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
609 // * <li>This bundle's state is set to <code>UNINSTALLED</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
610 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
611 // * <li>A bundle event of type {@link BundleEvent#UNINSTALLED} is fired.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
612 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
613 // * <li>This bundle and any persistent storage area provided for this bundle
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
614 // * by the Framework are removed.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
615 // * </ol>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
616 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
617 // * <b>Preconditions </b>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
618 // * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
619 // * <li><code>getState()</code> not in {<code>UNINSTALLED</code>}.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
620 // * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
621 // * <b>Postconditions, no exceptions thrown </b>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
622 // * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
623 // * <li><code>getState()</code> in {<code>UNINSTALLED</code>}.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
624 // * <li>This bundle has been uninstalled.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
625 // * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
626 // * <b>Postconditions, when an exception is thrown </b>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
627 // * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
628 // * <li><code>getState()</code> not in {<code>UNINSTALLED</code>}.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
629 // * <li>This Bundle has not been uninstalled.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
630 // * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
631 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
632 // * @throws BundleException If the uninstall failed. This can occur if
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
633 // * another thread is attempting to change this bundle's state and
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
634 // * does not complete in a timely manner.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
635 // * @throws java.lang.IllegalStateException If this bundle has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
636 // * uninstalled or this bundle tries to change its own state.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
637 // * @throws java.lang.SecurityException If the caller does not have the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
638 // * appropriate <code>AdminPermission[this,LIFECYCLE]</code>, and
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
639 // * the Java Runtime Environment supports permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
640 // * @see #stop()
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
641 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
642 // public void uninstall();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
643 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
644 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
645 // * Returns this bundle's Manifest headers and values. This method returns
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
646 // * all the Manifest headers and values from the main section of this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
647 // * bundle's Manifest file; that is, all lines prior to the first blank line.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
648 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
649 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
650 // * Manifest header names are case-insensitive. The methods of the returned
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
651 // * <code>Dictionary</code> object must operate on header names in a
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
652 // * case-insensitive manner.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
653 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
654 // * If a Manifest header value starts with &quot;%&quot;, it must be
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
655 // * localized according to the default locale.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
656 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
657 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
658 // * For example, the following Manifest headers and values are included if
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
659 // * they are present in the Manifest file:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
660 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
661 // * <pre>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
662 // * Bundle-Name
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
663 // * Bundle-Vendor
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
664 // * Bundle-Version
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
665 // * Bundle-Description
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
666 // * Bundle-DocURL
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
667 // * Bundle-ContactAddress
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
668 // * </pre>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
669 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
670 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
671 // * This method must continue to return Manifest header information while
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
672 // * this bundle is in the <code>UNINSTALLED</code> state.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
673 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
674 // * @return A <code>Dictionary</code> object containing this bundle's
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
675 // * Manifest headers and values.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
676 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
677 // * @throws java.lang.SecurityException If the caller does not have the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
678 // * appropriate <code>AdminPermission[this,METADATA]</code>, and
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
679 // * the Java Runtime Environment supports permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
680 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
681 // * @see Constants#BUNDLE_LOCALIZATION
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
682 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
683 // public Dictionary getHeaders();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
684 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
685 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
686 // * Returns this bundle's unique identifier. This bundle is assigned a unique
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
687 // * identifier by the Framework when it was installed in the OSGi
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
688 // * environment.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
689 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
690 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
691 // * A bundle's unique identifier has the following attributes:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
692 // * <ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
693 // * <li>Is unique and persistent.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
694 // * <li>Is a <code>long</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
695 // * <li>Its value is not reused for another bundle, even after a bundle is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
696 // * uninstalled.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
697 // * <li>Does not change while a bundle remains installed.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
698 // * <li>Does not change when a bundle is updated.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
699 // * </ul>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
700 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
701 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
702 // * This method must continue to return this bundle's unique identifier while
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
703 // * this bundle is in the <code>UNINSTALLED</code> state.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
704 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
705 // * @return The unique identifier of this bundle.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
706 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
707 // public long getBundleId();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
708 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
709 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
710 // * Returns this bundle's location identifier.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
711 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
712 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
713 // * The location identifier is the location passed to
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
714 // * <code>BundleContext.installBundle</code> when a bundle is installed.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
715 // * The location identifier does not change while this bundle remains
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
716 // * installed, even if this bundle is updated.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
717 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
718 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
719 // * This method must continue to return this bundle's location identifier
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
720 // * while this bundle is in the <code>UNINSTALLED</code> state.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
721 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
722 // * @return The string representation of this bundle's location identifier.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
723 // * @throws java.lang.SecurityException If the caller does not have the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
724 // * appropriate <code>AdminPermission[this,METADATA]</code>, and
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
725 // * the Java Runtime Environment supports permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
726 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
727 // public String getLocation();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
728 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
729 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
730 // * Returns this bundle's <code>ServiceReference</code> list for all
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
731 // * services it has registered or <code>null</code> if this bundle has no
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
732 // * registered services.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
733 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
734 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
735 // * If the Java runtime supports permissions, a <code>ServiceReference</code>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
736 // * object to a service is included in the returned list only if the caller
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
737 // * has the <code>ServicePermission</code> to get the service using at
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
738 // * least one of the named classes the service was registered under.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
739 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
740 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
741 // * The list is valid at the time of the call to this method, however, as the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
742 // * Framework is a very dynamic environment, services can be modified or
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
743 // * unregistered at anytime.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
744 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
745 // * @return An array of <code>ServiceReference</code> objects or
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
746 // * <code>null</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
747 // * @throws java.lang.IllegalStateException If this bundle has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
748 // * uninstalled.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
749 // * @see ServiceRegistration
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
750 // * @see ServiceReference
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
751 // * @see ServicePermission
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
752 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
753 // public ServiceReference[] getRegisteredServices();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
754 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
755 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
756 // * Returns this bundle's <code>ServiceReference</code> list for all
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
757 // * services it is using or returns <code>null</code> if this bundle is not
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
758 // * using any services. A bundle is considered to be using a service if its
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
759 // * use count for that service is greater than zero.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
760 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
761 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
762 // * If the Java Runtime Environment supports permissions, a
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
763 // * <code>ServiceReference</code> object to a service is included in the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
764 // * returned list only if the caller has the <code>ServicePermission</code>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
765 // * to get the service using at least one of the named classes the service
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
766 // * was registered under.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
767 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
768 // * The list is valid at the time of the call to this method, however, as the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
769 // * Framework is a very dynamic environment, services can be modified or
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
770 // * unregistered at anytime.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
771 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
772 // * @return An array of <code>ServiceReference</code> objects or
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
773 // * <code>null</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
774 // * @throws java.lang.IllegalStateException If this bundle has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
775 // * uninstalled.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
776 // * @see ServiceReference
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
777 // * @see ServicePermission
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
778 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
779 // public ServiceReference[] getServicesInUse();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
780 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
781 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
782 // * Determines if this bundle has the specified permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
783 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
784 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
785 // * If the Java Runtime Environment does not support permissions, this method
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
786 // * always returns <code>true</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
787 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
788 // * <code>permission</code> is of type <code>Object</code> to avoid
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
789 // * referencing the <code>java.security.Permission</code> class directly.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
790 // * This is to allow the Framework to be implemented in Java environments
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
791 // * which do not support permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
792 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
793 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
794 // * If the Java Runtime Environment does support permissions, this bundle and
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
795 // * all its resources including embedded JAR files, belong to the same
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
796 // * <code>java.security.ProtectionDomain</code>; that is, they must share
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
797 // * the same set of permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
798 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
799 // * @param permission The permission to verify.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
800 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
801 // * @return <code>true</code> if this bundle has the specified permission
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
802 // * or the permissions possessed by this bundle imply the specified
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
803 // * permission; <code>false</code> if this bundle does not have the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
804 // * specified permission or <code>permission</code> is not an
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
805 // * <code>instanceof</code> <code>java.security.Permission</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
806 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
807 // * @throws java.lang.IllegalStateException If this bundle has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
808 // * uninstalled.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
809 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
810 // public bool hasPermission(Object permission);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
811 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
812 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
813 // * Find the specified resource from this bundle.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
814 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
815 // * This bundle's class loader is called to search for the specified
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
816 // * resource. If this bundle's state is <code>INSTALLED</code>, this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
817 // * method must attempt to resolve this bundle before attempting to get the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
818 // * specified resource. If this bundle cannot be resolved, then only this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
819 // * bundle must be searched for the specified resource. Imported packages
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
820 // * cannot be searched when this bundle has not been resolved. If this bundle
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
821 // * is a fragment bundle then <code>null</code> is returned.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
822 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
823 // * @param name The name of the resource. See
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
824 // * <code>java.lang.ClassLoader.getResource</code> for a description
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
825 // * of the format of a resource name.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
826 // * @return A URL to the named resource, or <code>null</code> if the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
827 // * resource could not be found or if this bundle is a fragment
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
828 // * bundle or if the caller does not have the appropriate
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
829 // * <code>AdminPermission[this,RESOURCE]</code>, and the Java
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
830 // * Runtime Environment supports permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
831 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
832 // * @since 1.1
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
833 // * @throws java.lang.IllegalStateException If this bundle has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
834 // * uninstalled.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
835 // * @see #getEntry
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
836 // * @see #findEntries
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
837 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
838 // public URL getResource(String name);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
839 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
840 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
841 // * Returns this bundle's Manifest headers and values localized to the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
842 // * specified locale.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
843 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
844 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
845 // * This method performs the same function as
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
846 // * <code>Bundle.getHeaders()</code> except the manifest header values are
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
847 // * localized to the specified locale.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
848 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
849 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
850 // * If a Manifest header value starts with &quot;%&quot;, it must be
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
851 // * localized according to the specified locale. If a locale is specified and
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
852 // * cannot be found, then the header values must be returned using the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
853 // * default locale. Localizations are searched for in the following order:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
854 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
855 // * <pre>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
856 // * bn + "_" + Ls + "_" + Cs + "_" + Vs
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
857 // * bn + "_" + Ls + "_" + Cs
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
858 // * bn + "_" + Ls
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
859 // * bn + "_" + Ld + "_" + Cd + "_" + Vd
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
860 // * bn + "_" + Ld + "_" + Cd
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
861 // * bn + "_" + Ld
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
862 // * bn
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
863 // * </pre>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
864 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
865 // * Where <code>bn</code> is this bundle's localization basename,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
866 // * <code>Ls</code>, <code>Cs</code> and <code>Vs</code> are the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
867 // * specified locale (language, country, variant) and <code>Ld</code>,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
868 // * <code>Cd</code> and <code>Vd</code> are the default locale (language,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
869 // * country, variant).
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
870 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
871 // * If <code>null</code> is specified as the locale string, the header
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
872 // * values must be localized using the default locale. If the empty string
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
873 // * (&quot;&quot;) is specified as the locale string, the header values must
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
874 // * not be localized and the raw (unlocalized) header values, including any
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
875 // * leading &quot;%&quot;, must be returned.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
876 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
877 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
878 // * This method must continue to return Manifest header information while
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
879 // * this bundle is in the <code>UNINSTALLED</code> state, however the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
880 // * header values must only be available in the raw and default locale
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
881 // * values.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
882 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
883 // * @param locale The locale name into which the header values are to be
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
884 // * localized. If the specified locale is <code>null</code> then the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
885 // * locale returned by <code>java.util.Locale.getDefault</code> is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
886 // * used. If the specified locale is the empty string, this method
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
887 // * will return the raw (unlocalized) manifest headers including any
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
888 // * leading &quot;%&quot;.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
889 // * @return A <code>Dictionary</code> object containing this bundle's
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
890 // * Manifest headers and values.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
891 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
892 // * @throws java.lang.SecurityException If the caller does not have the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
893 // * appropriate <code>AdminPermission[this,METADATA]</code>, and
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
894 // * the Java Runtime Environment supports permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
895 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
896 // * @see #getHeaders()
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
897 // * @see Constants#BUNDLE_LOCALIZATION
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
898 // * @since 1.3
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
899 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
900 // public Dictionary getHeaders(String locale);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
901 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
902 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
903 // * Returns the symbolic name of this bundle as specified by its
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
904 // * <code>Bundle-SymbolicName</code> manifest header. The name must be
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
905 // * unique, it is recommended to use a reverse domain name naming convention
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
906 // * like that used for java packages. If this bundle does not have a
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
907 // * specified symbolic name then <code>null</code> is returned.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
908 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
909 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
910 // * This method must continue to return this bundle's symbolic name while
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
911 // * this bundle is in the <code>UNINSTALLED</code> state.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
912 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
913 // * @return The symbolic name of this bundle.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
914 // * @since 1.3
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
915 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
916 // public String getSymbolicName();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
917 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
918 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
919 // * Loads the specified class using this bundle's classloader.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
920 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
921 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
922 // * If this bundle is a fragment bundle then this method must throw a
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
923 // * <code>ClassNotFoundException</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
924 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
925 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
926 // * If this bundle's state is <code>INSTALLED</code>, this method must
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
927 // * attempt to resolve this bundle before attempting to load the class.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
928 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
929 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
930 // * If this bundle cannot be resolved, a Framework event of type
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
931 // * {@link FrameworkEvent#ERROR} is fired containing a
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
932 // * <code>BundleException</code> with details of the reason this bundle
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
933 // * could not be resolved. This method must then throw a
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
934 // * <code>ClassNotFoundException</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
935 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
936 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
937 // * If this bundle's state is <code>UNINSTALLED</code>, then an
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
938 // * <code>IllegalStateException</code> is thrown.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
939 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
940 // * @param name The name of the class to load.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
941 // * @return The Class object for the requested class.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
942 // * @throws java.lang.ClassNotFoundException If no such class can be found or
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
943 // * if this bundle is a fragment bundle or if the caller does not
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
944 // * have the appropriate <code>AdminPermission[this,CLASS]</code>,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
945 // * and the Java Runtime Environment supports permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
946 // * @throws java.lang.IllegalStateException If this bundle has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
947 // * uninstalled.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
948 // * @since 1.3
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
949 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
950 // public Class loadClass(String name) throws ClassNotFoundException;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
951 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
952 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
953 // * Find the specified resources from this bundle.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
954 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
955 // * This bundle's class loader is called to search for the specified
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
956 // * resources. If this bundle's state is <code>INSTALLED</code>, this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
957 // * method must attempt to resolve this bundle before attempting to get the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
958 // * specified resources. If this bundle cannot be resolved, then only this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
959 // * bundle must be searched for the specified resources. Imported packages
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
960 // * cannot be searched when a bundle has not been resolved. If this bundle is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
961 // * a fragment bundle then <code>null</code> is returned.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
962 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
963 // * @param name The name of the resource. See
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
964 // * <code>java.lang.ClassLoader.getResources</code> for a
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
965 // * description of the format of a resource name.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
966 // * @return An enumeration of URLs to the named resources, or
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
967 // * <code>null</code> if the resource could not be found or if this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
968 // * bundle is a fragment bundle or if the caller does not have the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
969 // * appropriate <code>AdminPermission[this,RESOURCE]</code>, and
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
970 // * the Java Runtime Environment supports permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
971 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
972 // * @since 1.3
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
973 // * @throws java.lang.IllegalStateException If this bundle has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
974 // * uninstalled.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
975 // * @throws java.io.IOException If there is an I/O error.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
976 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
977 // public Enumeration getResources(String name) throws IOException;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
978 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
979 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
980 // * Returns an Enumeration of all the paths (<code>String</code> objects)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
981 // * to entries within this bundle whose longest sub-path matches the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
982 // * specified path. This bundle's classloader is not used to search for
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
983 // * entries. Only the contents of this bundle are searched.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
984 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
985 // * The specified path is always relative to the root of this bundle and may
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
986 // * begin with a &quot;/&quot;. A path value of &quot;/&quot; indicates the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
987 // * root of this bundle.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
988 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
989 // * Returned paths indicating subdirectory paths end with a &quot;/&quot;.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
990 // * The returned paths are all relative to the root of this bundle and must
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
991 // * not begin with &quot;/&quot;.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
992 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
993 // * @param path The path name for which to return entry paths.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
994 // * @return An Enumeration of the entry paths (<code>String</code>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
995 // * objects) or <code>null</code> if no entry could be found or if
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
996 // * the caller does not have the appropriate
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
997 // * <code>AdminPermission[this,RESOURCE]</code> and the Java
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
998 // * Runtime Environment supports permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
999 // * @throws java.lang.IllegalStateException If this bundle has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1000 // * uninstalled.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1001 // * @since 1.3
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1002 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1003 // public Enumeration getEntryPaths(String path);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1004 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1005 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1006 // * Returns a URL to the entry at the specified path in this bundle. This
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1007 // * bundle's classloader is not used to search for the entry. Only the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1008 // * contents of this bundle are searched for the entry.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1009 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1010 // * The specified path is always relative to the root of this bundle and may
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1011 // * begin with &quot;/&quot;. A path value of &quot;/&quot; indicates the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1012 // * root of this bundle.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1013 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1014 // * @param path The path name of the entry.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1015 // * @return A URL to the entry, or <code>null</code> if no entry could be
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1016 // * found or if the caller does not have the appropriate
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1017 // * <code>AdminPermission[this,RESOURCE]</code> and the Java
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1018 // * Runtime Environment supports permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1019 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1020 // * @throws java.lang.IllegalStateException If this bundle has been
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1021 // * uninstalled.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1022 // * @since 1.3
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1023 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1024 // public URL getEntry(String path);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1025 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1026 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1027 // * Returns the time when this bundle was last modified. A bundle is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1028 // * considered to be modified when it is installed, updated or uninstalled.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1029 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1030 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1031 // * The time value is the number of milliseconds since January 1, 1970,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1032 // * 00:00:00 GMT.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1033 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1034 // * @return The time when this bundle was last modified.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1035 // * @since 1.3
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1036 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1037 // public long getLastModified();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1038 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1039 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1040 // * Returns entries in this bundle and its attached fragments. This bundle's
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1041 // * classloader is not used to search for entries. Only the contents of this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1042 // * bundle and its attached fragments are searched for the specified entries.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1043 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1044 // * If this bundle's state is <code>INSTALLED</code>, this method must
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1045 // * attempt to resolve this bundle before attempting to find entries.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1046 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1047 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1048 // * This method is intended to be used to obtain configuration, setup,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1049 // * localization and other information from this bundle. This method takes
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1050 // * into account that the &quot;contents&quot; of this bundle can be extended
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1051 // * with fragments. This &quot;bundle space&quot; is not a namespace with
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1052 // * unique members; the same entry name can be present multiple times. This
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1053 // * method therefore returns an enumeration of URL objects. These URLs can
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1054 // * come from different JARs but have the same path name. This method can
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1055 // * either return only entries in the specified path or recurse into
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1056 // * subdirectories returning entries in the directory tree beginning at the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1057 // * specified path. Fragments can be attached after this bundle is resolved,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1058 // * possibly changing the set of URLs returned by this method. If this bundle
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1059 // * is not resolved, only the entries in the JAR file of this bundle are
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1060 // * returned.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1061 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1062 // * Examples:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1063 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1064 // * <pre>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1065 // * // List all XML files in the OSGI-INF directory and below
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1066 // * Enumeration e = b.findEntries(&quot;OSGI-INF&quot;, &quot;*.xml&quot;, true);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1067 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1068 // * // Find a specific localization file
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1069 // * Enumeration e = b.findEntries(&quot;OSGI-INF/l10n&quot;,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1070 // * &quot;bundle_nl_DU.properties&quot;,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1071 // * false);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1072 // * if (e.hasMoreElements())
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1073 // * return (URL) e.nextElement();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1074 // * </pre>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1075 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1076 // * @param path The path name in which to look. The path is always relative
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1077 // * to the root of this bundle and may begin with &quot;/&quot;. A
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1078 // * path value of &quot;/&quot; indicates the root of this bundle.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1079 // * @param filePattern The file name pattern for selecting entries in the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1080 // * specified path. The pattern is only matched against the last
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1081 // * element of the entry path and it supports substring matching, as
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1082 // * specified in the Filter specification, using the wildcard
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1083 // * character (&quot;*&quot;). If null is specified, this is
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1084 // * equivalent to &quot;*&quot; and matches all files.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1085 // * @param recurse If <code>true</code>, recurse into subdirectories.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1086 // * Otherwise only return entries from the specified path.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1087 // * @return An enumeration of URL objects for each matching entry, or
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1088 // * <code>null</code> if an entry could not be found or if the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1089 // * caller does not have the appropriate
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1090 // * <code>AdminPermission[this,RESOURCE]</code>, and the Java
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1091 // * Runtime Environment supports permissions. The URLs are sorted
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1092 // * such that entries from this bundle are returned first followed by
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1093 // * the entries from attached fragments in ascending bundle id order.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1094 // * If this bundle is a fragment, then only matching entries in this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1095 // * fragment are returned.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1096 // * @since 1.3
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1097 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1098 // public Enumeration findEntries(String path, String filePattern,
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1099 // bool recurse);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1100 //
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1101 // /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1102 // * Returns this bundle's {@link BundleContext}. The returned
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1103 // * <code>BundleContext</code> can be used by the caller to act on behalf
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1104 // * of this bundle.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1105 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1106 // * <p>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1107 // * If this bundle is not in the {@link #STARTING}, {@link #ACTIVE}, or
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1108 // * {@link #STOPPING} states or this bundle is a fragment bundle, then this
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1109 // * bundle has no valid <code>BundleContext</code>. This method will
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1110 // * return <code>null</code> if this bundle has no valid
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1111 // * <code>BundleContext</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1112 // *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1113 // * @return A <code>BundleContext</code> for this bundle or
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1114 // * <code>null</code> if this bundle has no valid
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1115 // * <code>BundleContext</code>.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1116 // * @throws java.lang.SecurityException If the caller does not have the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1117 // * appropriate <code>AdminPermission[this,CONTEXT]</code>, and
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1118 // * the Java Runtime Environment supports permissions.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1119 // * @since 1.4
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1120 // */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1121 // public BundleContext getBundleContext();
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1122 }