Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 349618 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/equinox/internal/region/hook/RegionResolverHookTests.java (+32 lines)
Lines 403-408 Link Here
403
		}
403
		}
404
404
405
		@Override
405
		@Override
406
		public BundleRevision getResource() {
407
			return getRevision();
408
		}
409
410
		@Override
406
		public BundleRevision getRevision() {
411
		public BundleRevision getRevision() {
407
			return new StubBundleRevision(bundle(this.bundleSymbolicName));
412
			return new StubBundleRevision(bundle(this.bundleSymbolicName));
408
		}
413
		}
Lines 481-486 Link Here
481
		}
486
		}
482
487
483
		@Override
488
		@Override
489
		public BundleRevision getResource() {
490
			return getRevision();
491
		}
492
493
		@Override
484
		public BundleRevision getRevision() {
494
		public BundleRevision getRevision() {
485
			return new StubBundleRevision(bundle(this.bundleSymbolicName));
495
			return new StubBundleRevision(bundle(this.bundleSymbolicName));
486
		}
496
		}
Lines 543-548 Link Here
543
		}
553
		}
544
554
545
		@Override
555
		@Override
556
		public BundleRevision getResource() {
557
			return getRevision();
558
		}
559
560
		@Override
546
		public BundleRevision getRevision() {
561
		public BundleRevision getRevision() {
547
			return this.bundleRevision;
562
			return this.bundleRevision;
548
		}
563
		}
Lines 552-557 Link Here
552
			throw new UnsupportedOperationException();
567
			throw new UnsupportedOperationException();
553
		}
568
		}
554
569
570
		@Override
571
		public boolean matches(Capability capability) {
572
			if (!(capability instanceof BundleCapability))
573
				return false;
574
			return matches((BundleCapability) capability);
575
		}
555
	}
576
	}
556
577
557
	final class StubBundleRevision implements BundleRevision {
578
	final class StubBundleRevision implements BundleRevision {
Lines 597-602 Link Here
597
			throw new UnsupportedOperationException();
618
			throw new UnsupportedOperationException();
598
		}
619
		}
599
620
621
		@SuppressWarnings({"cast", "unchecked", "rawtypes"})
622
		@Override
623
		public List<Capability> getCapabilities(String namespace) {
624
			return (List<Capability>) (List) getDeclaredCapabilities(namespace);
625
		}
626
627
		@SuppressWarnings({"cast", "unchecked", "rawtypes"})
628
		@Override
629
		public List<Requirement> getRequirements(String namespace) {
630
			return (List<Requirement>) (List) getDeclaredRequirements(namespace);
631
		}
600
	}
632
	}
601
633
602
}
634
}
(-).settings/.api_filters (-1246 / +1253 lines)
Lines 1-1248 Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<component id="org.eclipse.osgi" version="2">
2
<component id="org.eclipse.osgi" version="2">
3
<resource path="core/framework/org/eclipse/osgi/framework/internal/protocol/URLStreamHandlerFactoryProxyFor15.java" type="org.eclipse.osgi.framework.internal.protocol.URLStreamHandlerFactoryProxyFor15">
3
    <resource path="core/framework/org/eclipse/osgi/framework/internal/protocol/URLStreamHandlerFactoryProxyFor15.java" type="org.eclipse.osgi.framework.internal.protocol.URLStreamHandlerFactoryProxyFor15">
4
<filter comment="Code is protected when running on a limited environment" id="646971428">
4
        <filter comment="Code is protected when running on a limited environment" id="646971428">
5
<message_arguments>
5
            <message_arguments>
6
<message_argument value="org.eclipse.osgi.framework.internal.protocol.URLStreamHandlerFactoryProxyFor15.openConnection(URL, Proxy)"/>
6
                <message_argument value="org.eclipse.osgi.framework.internal.protocol.URLStreamHandlerFactoryProxyFor15.openConnection(URL, Proxy)"/>
7
<message_argument value="Proxy"/>
7
                <message_argument value="Proxy"/>
8
<message_argument value="OSGi/Minimum-1.2"/>
8
                <message_argument value="OSGi/Minimum-1.2"/>
9
</message_arguments>
9
            </message_arguments>
10
</filter>
10
        </filter>
11
</resource>
11
    </resource>
12
<resource path="core/framework/org/eclipse/osgi/launch/Equinox.java" type="org.eclipse.osgi.launch.Equinox">
12
    <resource path="core/framework/org/eclipse/osgi/launch/Equinox.java" type="org.eclipse.osgi.launch.Equinox">
13
<filter id="1143996420">
13
        <filter id="1143996420">
14
<message_arguments>
14
            <message_arguments>
15
<message_argument value="adapt(Class&lt;A&gt;)"/>
15
                <message_argument value="adapt(Class&lt;A&gt;)"/>
16
</message_arguments>
16
            </message_arguments>
17
</filter>
17
        </filter>
18
<filter id="1143996420">
18
        <filter id="1143996420">
19
<message_arguments>
19
            <message_arguments>
20
<message_argument value="compareTo(Bundle)"/>
20
                <message_argument value="compareTo(Bundle)"/>
21
</message_arguments>
21
            </message_arguments>
22
</filter>
22
        </filter>
23
<filter id="1143996420">
23
        <filter id="1143996420">
24
<message_arguments>
24
            <message_arguments>
25
<message_argument value="getDataFile(String)"/>
25
                <message_argument value="getDataFile(String)"/>
26
</message_arguments>
26
            </message_arguments>
27
</filter>
27
        </filter>
28
</resource>
28
    </resource>
29
<resource path="eclipseAdaptor/src/org/eclipse/core/runtime/internal/adaptor/EclipseAdaptorHook.java" type="org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorHook$ParsingService">
29
    <resource path="eclipseAdaptor/src/org/eclipse/core/runtime/internal/adaptor/EclipseAdaptorHook.java" type="org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorHook$ParsingService">
30
<filter comment="Code is protected when running on a limited environment" id="647004193">
30
        <filter comment="Code is protected when running on a limited environment" id="647004193">
31
<message_arguments>
31
            <message_arguments>
32
<message_argument value="org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorHook.ParsingService.createService()"/>
32
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorHook.ParsingService.createService()"/>
33
<message_argument value="DocumentBuilderFactory"/>
33
                <message_argument value="DocumentBuilderFactory"/>
34
<message_argument value="newInstance()"/>
34
                <message_argument value="newInstance()"/>
35
<message_argument value="OSGi/Minimum-1.2"/>
35
                <message_argument value="OSGi/Minimum-1.2"/>
36
</message_arguments>
36
            </message_arguments>
37
</filter>
37
        </filter>
38
<filter comment="Code is protected when running on a limited environment" id="647004193">
38
        <filter comment="Code is protected when running on a limited environment" id="647004193">
39
<message_arguments>
39
            <message_arguments>
40
<message_argument value="org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorHook.ParsingService.createService()"/>
40
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.EclipseAdaptorHook.ParsingService.createService()"/>
41
<message_argument value="SAXParserFactory"/>
41
                <message_argument value="SAXParserFactory"/>
42
<message_argument value="newInstance()"/>
42
                <message_argument value="newInstance()"/>
43
<message_argument value="OSGi/Minimum-1.2"/>
43
                <message_argument value="OSGi/Minimum-1.2"/>
44
</message_arguments>
44
            </message_arguments>
45
</filter>
45
        </filter>
46
</resource>
46
    </resource>
47
<resource path="eclipseAdaptor/src/org/eclipse/core/runtime/internal/adaptor/PluginParser.java" type="org.eclipse.core.runtime.internal.adaptor.PluginParser">
47
    <resource path="eclipseAdaptor/src/org/eclipse/core/runtime/internal/adaptor/PluginParser.java" type="org.eclipse.core.runtime.internal.adaptor.PluginParser">
48
<filter comment="Code is protected when running on a limited environment" id="579862564">
48
        <filter comment="Code is protected when running on a limited environment" id="579862564">
49
<message_arguments>
49
            <message_arguments>
50
<message_argument value="PluginParser"/>
50
                <message_argument value="PluginParser"/>
51
<message_argument value="DefaultHandler"/>
51
                <message_argument value="DefaultHandler"/>
52
<message_argument value="OSGi/Minimum-1.2"/>
52
                <message_argument value="OSGi/Minimum-1.2"/>
53
</message_arguments>
53
            </message_arguments>
54
</filter>
54
        </filter>
55
<filter comment="Code is protected when running on a limited environment" id="630194212">
55
        <filter comment="Code is protected when running on a limited environment" id="630194212">
56
<message_arguments>
56
            <message_arguments>
57
<message_argument value="PluginParser.locator"/>
57
                <message_argument value="PluginParser.locator"/>
58
<message_argument value="Locator"/>
58
                <message_argument value="Locator"/>
59
<message_argument value="OSGi/Minimum-1.2"/>
59
                <message_argument value="OSGi/Minimum-1.2"/>
60
</message_arguments>
60
            </message_arguments>
61
</filter>
61
        </filter>
62
<filter comment="Code is protected when running on a limited environment" id="630194212">
62
        <filter comment="Code is protected when running on a limited environment" id="630194212">
63
<message_arguments>
63
            <message_arguments>
64
<message_argument value="PluginParser.xmlTracker"/>
64
                <message_argument value="PluginParser.xmlTracker"/>
65
<message_argument value="SAXParserFactory"/>
65
                <message_argument value="SAXParserFactory"/>
66
<message_argument value="OSGi/Minimum-1.2"/>
66
                <message_argument value="OSGi/Minimum-1.2"/>
67
</message_arguments>
67
            </message_arguments>
68
</filter>
68
        </filter>
69
<filter comment="Code is protected when running on a limited environment" id="646971428">
69
        <filter comment="Code is protected when running on a limited environment" id="646971428">
70
<message_arguments>
70
            <message_arguments>
71
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.acquireXMLParsing(BundleContext)"/>
71
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.acquireXMLParsing(BundleContext)"/>
72
<message_argument value="SAXParserFactory"/>
72
                <message_argument value="SAXParserFactory"/>
73
<message_argument value="OSGi/Minimum-1.2"/>
73
                <message_argument value="OSGi/Minimum-1.2"/>
74
</message_arguments>
74
            </message_arguments>
75
</filter>
75
        </filter>
76
<filter comment="Code is protected when running on a limited environment" id="646971428">
76
        <filter comment="Code is protected when running on a limited environment" id="646971428">
77
<message_arguments>
77
            <message_arguments>
78
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.error(SAXParseException)"/>
78
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.error(SAXParseException)"/>
79
<message_argument value="SAXParseException"/>
79
                <message_argument value="SAXParseException"/>
80
<message_argument value="OSGi/Minimum-1.2"/>
80
                <message_argument value="OSGi/Minimum-1.2"/>
81
</message_arguments>
81
            </message_arguments>
82
</filter>
82
        </filter>
83
<filter comment="Code is protected when running on a limited environment" id="646971428">
83
        <filter comment="Code is protected when running on a limited environment" id="646971428">
84
<message_arguments>
84
            <message_arguments>
85
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.fatalError(SAXParseException)"/>
85
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.fatalError(SAXParseException)"/>
86
<message_argument value="SAXException"/>
86
                <message_argument value="SAXException"/>
87
<message_argument value="OSGi/Minimum-1.2"/>
87
                <message_argument value="OSGi/Minimum-1.2"/>
88
</message_arguments>
88
            </message_arguments>
89
</filter>
89
        </filter>
90
<filter comment="Code is protected when running on a limited environment" id="646971428">
90
        <filter comment="Code is protected when running on a limited environment" id="646971428">
91
<message_arguments>
91
            <message_arguments>
92
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.fatalError(SAXParseException)"/>
92
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.fatalError(SAXParseException)"/>
93
<message_argument value="SAXParseException"/>
93
                <message_argument value="SAXParseException"/>
94
<message_argument value="OSGi/Minimum-1.2"/>
94
                <message_argument value="OSGi/Minimum-1.2"/>
95
</message_arguments>
95
            </message_arguments>
96
</filter>
96
        </filter>
97
<filter comment="Code is protected when running on a limited environment" id="646971428">
97
        <filter comment="Code is protected when running on a limited environment" id="646971428">
98
<message_arguments>
98
            <message_arguments>
99
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleExtensionPointState(String, Attributes)"/>
99
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleExtensionPointState(String, Attributes)"/>
100
<message_argument value="Attributes"/>
100
                <message_argument value="Attributes"/>
101
<message_argument value="OSGi/Minimum-1.2"/>
101
                <message_argument value="OSGi/Minimum-1.2"/>
102
</message_arguments>
102
            </message_arguments>
103
</filter>
103
        </filter>
104
<filter comment="Code is protected when running on a limited environment" id="646971428">
104
        <filter comment="Code is protected when running on a limited environment" id="646971428">
105
<message_arguments>
105
            <message_arguments>
106
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleExtensionState(String, Attributes)"/>
106
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleExtensionState(String, Attributes)"/>
107
<message_argument value="Attributes"/>
107
                <message_argument value="Attributes"/>
108
<message_argument value="OSGi/Minimum-1.2"/>
108
                <message_argument value="OSGi/Minimum-1.2"/>
109
</message_arguments>
109
            </message_arguments>
110
</filter>
110
        </filter>
111
<filter comment="Code is protected when running on a limited environment" id="646971428">
111
        <filter comment="Code is protected when running on a limited environment" id="646971428">
112
<message_arguments>
112
            <message_arguments>
113
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleInitialState(String, Attributes)"/>
113
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleInitialState(String, Attributes)"/>
114
<message_argument value="Attributes"/>
114
                <message_argument value="Attributes"/>
115
<message_argument value="OSGi/Minimum-1.2"/>
115
                <message_argument value="OSGi/Minimum-1.2"/>
116
</message_arguments>
116
            </message_arguments>
117
</filter>
117
        </filter>
118
<filter comment="Code is protected when running on a limited environment" id="646971428">
118
        <filter comment="Code is protected when running on a limited environment" id="646971428">
119
<message_arguments>
119
            <message_arguments>
120
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleLibraryExportState(String, Attributes)"/>
120
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleLibraryExportState(String, Attributes)"/>
121
<message_argument value="Attributes"/>
121
                <message_argument value="Attributes"/>
122
<message_argument value="OSGi/Minimum-1.2"/>
122
                <message_argument value="OSGi/Minimum-1.2"/>
123
</message_arguments>
123
            </message_arguments>
124
</filter>
124
        </filter>
125
<filter comment="Code is protected when running on a limited environment" id="646971428">
125
        <filter comment="Code is protected when running on a limited environment" id="646971428">
126
<message_arguments>
126
            <message_arguments>
127
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleLibraryState(String, Attributes)"/>
127
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleLibraryState(String, Attributes)"/>
128
<message_argument value="Attributes"/>
128
                <message_argument value="Attributes"/>
129
<message_argument value="OSGi/Minimum-1.2"/>
129
                <message_argument value="OSGi/Minimum-1.2"/>
130
</message_arguments>
130
            </message_arguments>
131
</filter>
131
        </filter>
132
<filter comment="Code is protected when running on a limited environment" id="646971428">
132
        <filter comment="Code is protected when running on a limited environment" id="646971428">
133
<message_arguments>
133
            <message_arguments>
134
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handlePluginState(String, Attributes)"/>
134
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handlePluginState(String, Attributes)"/>
135
<message_argument value="Attributes"/>
135
                <message_argument value="Attributes"/>
136
<message_argument value="OSGi/Minimum-1.2"/>
136
                <message_argument value="OSGi/Minimum-1.2"/>
137
</message_arguments>
137
            </message_arguments>
138
</filter>
138
        </filter>
139
<filter comment="Code is protected when running on a limited environment" id="646971428">
139
        <filter comment="Code is protected when running on a limited environment" id="646971428">
140
<message_arguments>
140
            <message_arguments>
141
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleRequiresImportState(String, Attributes)"/>
141
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleRequiresImportState(String, Attributes)"/>
142
<message_argument value="Attributes"/>
142
                <message_argument value="Attributes"/>
143
<message_argument value="OSGi/Minimum-1.2"/>
143
                <message_argument value="OSGi/Minimum-1.2"/>
144
</message_arguments>
144
            </message_arguments>
145
</filter>
145
        </filter>
146
<filter comment="Code is protected when running on a limited environment" id="646971428">
146
        <filter comment="Code is protected when running on a limited environment" id="646971428">
147
<message_arguments>
147
            <message_arguments>
148
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleRequiresState(String, Attributes)"/>
148
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleRequiresState(String, Attributes)"/>
149
<message_argument value="Attributes"/>
149
                <message_argument value="Attributes"/>
150
<message_argument value="OSGi/Minimum-1.2"/>
150
                <message_argument value="OSGi/Minimum-1.2"/>
151
</message_arguments>
151
            </message_arguments>
152
</filter>
152
        </filter>
153
<filter comment="Code is protected when running on a limited environment" id="646971428">
153
        <filter comment="Code is protected when running on a limited environment" id="646971428">
154
<message_arguments>
154
            <message_arguments>
155
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleRuntimeState(String, Attributes)"/>
155
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleRuntimeState(String, Attributes)"/>
156
<message_argument value="Attributes"/>
156
                <message_argument value="Attributes"/>
157
<message_argument value="OSGi/Minimum-1.2"/>
157
                <message_argument value="OSGi/Minimum-1.2"/>
158
</message_arguments>
158
            </message_arguments>
159
</filter>
159
        </filter>
160
<filter comment="Code is protected when running on a limited environment" id="646971428">
160
        <filter comment="Code is protected when running on a limited environment" id="646971428">
161
<message_arguments>
161
            <message_arguments>
162
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.logStatus(SAXParseException)"/>
162
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.logStatus(SAXParseException)"/>
163
<message_argument value="SAXParseException"/>
163
                <message_argument value="SAXParseException"/>
164
<message_argument value="OSGi/Minimum-1.2"/>
164
                <message_argument value="OSGi/Minimum-1.2"/>
165
</message_arguments>
165
            </message_arguments>
166
</filter>
166
        </filter>
167
<filter comment="Code is protected when running on a limited environment" id="646971428">
167
        <filter comment="Code is protected when running on a limited environment" id="646971428">
168
<message_arguments>
168
            <message_arguments>
169
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parseFragmentAttributes(Attributes)"/>
169
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parseFragmentAttributes(Attributes)"/>
170
<message_argument value="Attributes"/>
170
                <message_argument value="Attributes"/>
171
<message_argument value="OSGi/Minimum-1.2"/>
171
                <message_argument value="OSGi/Minimum-1.2"/>
172
</message_arguments>
172
            </message_arguments>
173
</filter>
173
        </filter>
174
<filter comment="Code is protected when running on a limited environment" id="646971428">
174
        <filter comment="Code is protected when running on a limited environment" id="646971428">
175
<message_arguments>
175
            <message_arguments>
176
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parseLibraryAttributes(Attributes)"/>
176
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parseLibraryAttributes(Attributes)"/>
177
<message_argument value="Attributes"/>
177
                <message_argument value="Attributes"/>
178
<message_argument value="OSGi/Minimum-1.2"/>
178
                <message_argument value="OSGi/Minimum-1.2"/>
179
</message_arguments>
179
            </message_arguments>
180
</filter>
180
        </filter>
181
<filter comment="Code is protected when running on a limited environment" id="646971428">
181
        <filter comment="Code is protected when running on a limited environment" id="646971428">
182
<message_arguments>
182
            <message_arguments>
183
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePlugin(InputStream)"/>
183
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePlugin(InputStream)"/>
184
<message_argument value="SAXException"/>
184
                <message_argument value="SAXException"/>
185
<message_argument value="OSGi/Minimum-1.2"/>
185
                <message_argument value="OSGi/Minimum-1.2"/>
186
</message_arguments>
186
            </message_arguments>
187
</filter>
187
        </filter>
188
<filter comment="Code is protected when running on a limited environment" id="646971428">
188
        <filter comment="Code is protected when running on a limited environment" id="646971428">
189
<message_arguments>
189
            <message_arguments>
190
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePlugin(InputStream)"/>
190
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePlugin(InputStream)"/>
191
<message_argument value="SAXParserFactory"/>
191
                <message_argument value="SAXParserFactory"/>
192
<message_argument value="OSGi/Minimum-1.2"/>
192
                <message_argument value="OSGi/Minimum-1.2"/>
193
</message_arguments>
193
            </message_arguments>
194
</filter>
194
        </filter>
195
<filter comment="Code is protected when running on a limited environment" id="646971428">
195
        <filter comment="Code is protected when running on a limited environment" id="646971428">
196
<message_arguments>
196
            <message_arguments>
197
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePluginAttributes(Attributes)"/>
197
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePluginAttributes(Attributes)"/>
198
<message_argument value="Attributes"/>
198
                <message_argument value="Attributes"/>
199
<message_argument value="OSGi/Minimum-1.2"/>
199
                <message_argument value="OSGi/Minimum-1.2"/>
200
</message_arguments>
200
            </message_arguments>
201
</filter>
201
        </filter>
202
<filter comment="Code is protected when running on a limited environment" id="646971428">
202
        <filter comment="Code is protected when running on a limited environment" id="646971428">
203
<message_arguments>
203
            <message_arguments>
204
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePluginRequiresImport(Attributes)"/>
204
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePluginRequiresImport(Attributes)"/>
205
<message_argument value="Attributes"/>
205
                <message_argument value="Attributes"/>
206
<message_argument value="OSGi/Minimum-1.2"/>
206
                <message_argument value="OSGi/Minimum-1.2"/>
207
</message_arguments>
207
            </message_arguments>
208
</filter>
208
        </filter>
209
<filter comment="Code is protected when running on a limited environment" id="646971428">
209
        <filter comment="Code is protected when running on a limited environment" id="646971428">
210
<message_arguments>
210
            <message_arguments>
211
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parseRequiresAttributes(Attributes)"/>
211
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parseRequiresAttributes(Attributes)"/>
212
<message_argument value="Attributes"/>
212
                <message_argument value="Attributes"/>
213
<message_argument value="OSGi/Minimum-1.2"/>
213
                <message_argument value="OSGi/Minimum-1.2"/>
214
</message_arguments>
214
            </message_arguments>
215
</filter>
215
        </filter>
216
<filter comment="Code is protected when running on a limited environment" id="646971428">
216
        <filter comment="Code is protected when running on a limited environment" id="646971428">
217
<message_arguments>
217
            <message_arguments>
218
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.processingInstruction(String, String)"/>
218
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.processingInstruction(String, String)"/>
219
<message_argument value="SAXException"/>
219
                <message_argument value="SAXException"/>
220
<message_argument value="OSGi/Minimum-1.2"/>
220
                <message_argument value="OSGi/Minimum-1.2"/>
221
</message_arguments>
221
            </message_arguments>
222
</filter>
222
        </filter>
223
<filter comment="Code is protected when running on a limited environment" id="646971428">
223
        <filter comment="Code is protected when running on a limited environment" id="646971428">
224
<message_arguments>
224
            <message_arguments>
225
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.setDocumentLocator(Locator)"/>
225
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.setDocumentLocator(Locator)"/>
226
<message_argument value="Locator"/>
226
                <message_argument value="Locator"/>
227
<message_argument value="OSGi/Minimum-1.2"/>
227
                <message_argument value="OSGi/Minimum-1.2"/>
228
</message_arguments>
228
            </message_arguments>
229
</filter>
229
        </filter>
230
<filter comment="Code is protected when running on a limited environment" id="646971428">
230
        <filter comment="Code is protected when running on a limited environment" id="646971428">
231
<message_arguments>
231
            <message_arguments>
232
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.startElement(String, String, String, Attributes)"/>
232
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.startElement(String, String, String, Attributes)"/>
233
<message_argument value="Attributes"/>
233
                <message_argument value="Attributes"/>
234
<message_argument value="OSGi/Minimum-1.2"/>
234
                <message_argument value="OSGi/Minimum-1.2"/>
235
</message_arguments>
235
            </message_arguments>
236
</filter>
236
        </filter>
237
<filter comment="Code is protected when running on a limited environment" id="646971428">
237
        <filter comment="Code is protected when running on a limited environment" id="646971428">
238
<message_arguments>
238
            <message_arguments>
239
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.warning(SAXParseException)"/>
239
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.warning(SAXParseException)"/>
240
<message_argument value="SAXParseException"/>
240
                <message_argument value="SAXParseException"/>
241
<message_argument value="OSGi/Minimum-1.2"/>
241
                <message_argument value="OSGi/Minimum-1.2"/>
242
</message_arguments>
242
            </message_arguments>
243
</filter>
243
        </filter>
244
<filter comment="Code is protected when running on a limited environment" id="647000098">
244
        <filter comment="Code is protected when running on a limited environment" id="647000098">
245
<message_arguments>
245
            <message_arguments>
246
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.PluginParser(FrameworkAdaptor, BundleContext, Version)"/>
246
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.PluginParser(FrameworkAdaptor, BundleContext, Version)"/>
247
<message_argument value="DefaultHandler()"/>
247
                <message_argument value="DefaultHandler()"/>
248
<message_argument value="OSGi/Minimum-1.2"/>
248
                <message_argument value="OSGi/Minimum-1.2"/>
249
</message_arguments>
249
            </message_arguments>
250
</filter>
250
        </filter>
251
<filter comment="Code is protected when running on a limited environment" id="647004193">
251
        <filter comment="Code is protected when running on a limited environment" id="647004193">
252
<message_arguments>
252
            <message_arguments>
253
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.acquireXMLParsing(BundleContext)"/>
253
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.acquireXMLParsing(BundleContext)"/>
254
<message_argument value="SAXParserFactory"/>
254
                <message_argument value="SAXParserFactory"/>
255
<message_argument value="newInstance()"/>
255
                <message_argument value="newInstance()"/>
256
<message_argument value="OSGi/Minimum-1.2"/>
256
                <message_argument value="OSGi/Minimum-1.2"/>
257
</message_arguments>
257
            </message_arguments>
258
</filter>
258
        </filter>
259
<filter comment="Code is protected when running on a limited environment" id="647004193">
259
        <filter comment="Code is protected when running on a limited environment" id="647004193">
260
<message_arguments>
260
            <message_arguments>
261
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleLibraryState(String, Attributes)"/>
261
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.handleLibraryState(String, Attributes)"/>
262
<message_argument value="Attributes"/>
262
                <message_argument value="Attributes"/>
263
<message_argument value="getValue(String, String)"/>
263
                <message_argument value="getValue(String, String)"/>
264
<message_argument value="OSGi/Minimum-1.2"/>
264
                <message_argument value="OSGi/Minimum-1.2"/>
265
</message_arguments>
265
            </message_arguments>
266
</filter>
266
        </filter>
267
<filter comment="Code is protected when running on a limited environment" id="647004193">
267
        <filter comment="Code is protected when running on a limited environment" id="647004193">
268
<message_arguments>
268
            <message_arguments>
269
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.logStatus(SAXParseException)"/>
269
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.logStatus(SAXParseException)"/>
270
<message_argument value="SAXParseException"/>
270
                <message_argument value="SAXParseException"/>
271
<message_argument value="getColumnNumber()"/>
271
                <message_argument value="getColumnNumber()"/>
272
<message_argument value="OSGi/Minimum-1.2"/>
272
                <message_argument value="OSGi/Minimum-1.2"/>
273
</message_arguments>
273
            </message_arguments>
274
</filter>
274
        </filter>
275
<filter comment="Code is protected when running on a limited environment" id="647004193">
275
        <filter comment="Code is protected when running on a limited environment" id="647004193">
276
<message_arguments>
276
            <message_arguments>
277
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.logStatus(SAXParseException)"/>
277
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.logStatus(SAXParseException)"/>
278
<message_argument value="SAXParseException"/>
278
                <message_argument value="SAXParseException"/>
279
<message_argument value="getLineNumber()"/>
279
                <message_argument value="getLineNumber()"/>
280
<message_argument value="OSGi/Minimum-1.2"/>
280
                <message_argument value="OSGi/Minimum-1.2"/>
281
</message_arguments>
281
            </message_arguments>
282
</filter>
282
        </filter>
283
<filter comment="Code is protected when running on a limited environment" id="647004193">
283
        <filter comment="Code is protected when running on a limited environment" id="647004193">
284
<message_arguments>
284
            <message_arguments>
285
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.logStatus(SAXParseException)"/>
285
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.logStatus(SAXParseException)"/>
286
<message_argument value="SAXParseException"/>
286
                <message_argument value="SAXParseException"/>
287
<message_argument value="getMessage()"/>
287
                <message_argument value="getMessage()"/>
288
<message_argument value="OSGi/Minimum-1.2"/>
288
                <message_argument value="OSGi/Minimum-1.2"/>
289
</message_arguments>
289
            </message_arguments>
290
</filter>
290
        </filter>
291
<filter comment="Code is protected when running on a limited environment" id="647004193">
291
        <filter comment="Code is protected when running on a limited environment" id="647004193">
292
<message_arguments>
292
            <message_arguments>
293
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.logStatus(SAXParseException)"/>
293
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.logStatus(SAXParseException)"/>
294
<message_argument value="SAXParseException"/>
294
                <message_argument value="SAXParseException"/>
295
<message_argument value="getSystemId()"/>
295
                <message_argument value="getSystemId()"/>
296
<message_argument value="OSGi/Minimum-1.2"/>
296
                <message_argument value="OSGi/Minimum-1.2"/>
297
</message_arguments>
297
            </message_arguments>
298
</filter>
298
        </filter>
299
<filter comment="Code is protected when running on a limited environment" id="647004193">
299
        <filter comment="Code is protected when running on a limited environment" id="647004193">
300
<message_arguments>
300
            <message_arguments>
301
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parseFragmentAttributes(Attributes)"/>
301
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parseFragmentAttributes(Attributes)"/>
302
<message_argument value="Attributes"/>
302
                <message_argument value="Attributes"/>
303
<message_argument value="getLength()"/>
303
                <message_argument value="getLength()"/>
304
<message_argument value="OSGi/Minimum-1.2"/>
304
                <message_argument value="OSGi/Minimum-1.2"/>
305
</message_arguments>
305
            </message_arguments>
306
</filter>
306
        </filter>
307
<filter comment="Code is protected when running on a limited environment" id="647004193">
307
        <filter comment="Code is protected when running on a limited environment" id="647004193">
308
<message_arguments>
308
            <message_arguments>
309
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parseFragmentAttributes(Attributes)"/>
309
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parseFragmentAttributes(Attributes)"/>
310
<message_argument value="Attributes"/>
310
                <message_argument value="Attributes"/>
311
<message_argument value="getLocalName(int)"/>
311
                <message_argument value="getLocalName(int)"/>
312
<message_argument value="OSGi/Minimum-1.2"/>
312
                <message_argument value="OSGi/Minimum-1.2"/>
313
</message_arguments>
313
            </message_arguments>
314
</filter>
314
        </filter>
315
<filter comment="Code is protected when running on a limited environment" id="647004193">
315
        <filter comment="Code is protected when running on a limited environment" id="647004193">
316
<message_arguments>
316
            <message_arguments>
317
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parseFragmentAttributes(Attributes)"/>
317
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parseFragmentAttributes(Attributes)"/>
318
<message_argument value="Attributes"/>
318
                <message_argument value="Attributes"/>
319
<message_argument value="getValue(int)"/>
319
                <message_argument value="getValue(int)"/>
320
<message_argument value="OSGi/Minimum-1.2"/>
320
                <message_argument value="OSGi/Minimum-1.2"/>
321
</message_arguments>
321
            </message_arguments>
322
</filter>
322
        </filter>
323
<filter comment="Code is protected when running on a limited environment" id="647004193">
323
        <filter comment="Code is protected when running on a limited environment" id="647004193">
324
<message_arguments>
324
            <message_arguments>
325
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parseLibraryAttributes(Attributes)"/>
325
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parseLibraryAttributes(Attributes)"/>
326
<message_argument value="Attributes"/>
326
                <message_argument value="Attributes"/>
327
<message_argument value="getValue(String, String)"/>
327
                <message_argument value="getValue(String, String)"/>
328
<message_argument value="OSGi/Minimum-1.2"/>
328
                <message_argument value="OSGi/Minimum-1.2"/>
329
</message_arguments>
329
            </message_arguments>
330
</filter>
330
        </filter>
331
<filter comment="Code is protected when running on a limited environment" id="647004193">
331
        <filter comment="Code is protected when running on a limited environment" id="647004193">
332
<message_arguments>
332
            <message_arguments>
333
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePlugin(InputStream)"/>
333
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePlugin(InputStream)"/>
334
<message_argument value="SAXParser"/>
334
                <message_argument value="SAXParser"/>
335
<message_argument value="parse(InputStream, DefaultHandler)"/>
335
                <message_argument value="parse(InputStream, DefaultHandler)"/>
336
<message_argument value="OSGi/Minimum-1.2"/>
336
                <message_argument value="OSGi/Minimum-1.2"/>
337
</message_arguments>
337
            </message_arguments>
338
</filter>
338
        </filter>
339
<filter comment="Code is protected when running on a limited environment" id="647004193">
339
        <filter comment="Code is protected when running on a limited environment" id="647004193">
340
<message_arguments>
340
            <message_arguments>
341
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePlugin(InputStream)"/>
341
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePlugin(InputStream)"/>
342
<message_argument value="SAXParserFactory"/>
342
                <message_argument value="SAXParserFactory"/>
343
<message_argument value="newSAXParser()"/>
343
                <message_argument value="newSAXParser()"/>
344
<message_argument value="OSGi/Minimum-1.2"/>
344
                <message_argument value="OSGi/Minimum-1.2"/>
345
</message_arguments>
345
            </message_arguments>
346
</filter>
346
        </filter>
347
<filter comment="Code is protected when running on a limited environment" id="647004193">
347
        <filter comment="Code is protected when running on a limited environment" id="647004193">
348
<message_arguments>
348
            <message_arguments>
349
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePlugin(InputStream)"/>
349
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePlugin(InputStream)"/>
350
<message_argument value="SAXParserFactory"/>
350
                <message_argument value="SAXParserFactory"/>
351
<message_argument value="setFeature(String, boolean)"/>
351
                <message_argument value="setFeature(String, boolean)"/>
352
<message_argument value="OSGi/Minimum-1.2"/>
352
                <message_argument value="OSGi/Minimum-1.2"/>
353
</message_arguments>
353
            </message_arguments>
354
</filter>
354
        </filter>
355
<filter comment="Code is protected when running on a limited environment" id="647004193">
355
        <filter comment="Code is protected when running on a limited environment" id="647004193">
356
<message_arguments>
356
            <message_arguments>
357
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePlugin(InputStream)"/>
357
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePlugin(InputStream)"/>
358
<message_argument value="SAXParserFactory"/>
358
                <message_argument value="SAXParserFactory"/>
359
<message_argument value="setNamespaceAware(boolean)"/>
359
                <message_argument value="setNamespaceAware(boolean)"/>
360
<message_argument value="OSGi/Minimum-1.2"/>
360
                <message_argument value="OSGi/Minimum-1.2"/>
361
</message_arguments>
361
            </message_arguments>
362
</filter>
362
        </filter>
363
<filter comment="Code is protected when running on a limited environment" id="647004193">
363
        <filter comment="Code is protected when running on a limited environment" id="647004193">
364
<message_arguments>
364
            <message_arguments>
365
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePlugin(InputStream)"/>
365
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePlugin(InputStream)"/>
366
<message_argument value="SAXParserFactory"/>
366
                <message_argument value="SAXParserFactory"/>
367
<message_argument value="setValidating(boolean)"/>
367
                <message_argument value="setValidating(boolean)"/>
368
<message_argument value="OSGi/Minimum-1.2"/>
368
                <message_argument value="OSGi/Minimum-1.2"/>
369
</message_arguments>
369
            </message_arguments>
370
</filter>
370
        </filter>
371
<filter comment="Code is protected when running on a limited environment" id="647004193">
371
        <filter comment="Code is protected when running on a limited environment" id="647004193">
372
<message_arguments>
372
            <message_arguments>
373
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePluginAttributes(Attributes)"/>
373
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePluginAttributes(Attributes)"/>
374
<message_argument value="Attributes"/>
374
                <message_argument value="Attributes"/>
375
<message_argument value="getLength()"/>
375
                <message_argument value="getLength()"/>
376
<message_argument value="OSGi/Minimum-1.2"/>
376
                <message_argument value="OSGi/Minimum-1.2"/>
377
</message_arguments>
377
            </message_arguments>
378
</filter>
378
        </filter>
379
<filter comment="Code is protected when running on a limited environment" id="647004193">
379
        <filter comment="Code is protected when running on a limited environment" id="647004193">
380
<message_arguments>
380
            <message_arguments>
381
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePluginAttributes(Attributes)"/>
381
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePluginAttributes(Attributes)"/>
382
<message_argument value="Attributes"/>
382
                <message_argument value="Attributes"/>
383
<message_argument value="getLocalName(int)"/>
383
                <message_argument value="getLocalName(int)"/>
384
<message_argument value="OSGi/Minimum-1.2"/>
384
                <message_argument value="OSGi/Minimum-1.2"/>
385
</message_arguments>
385
            </message_arguments>
386
</filter>
386
        </filter>
387
<filter comment="Code is protected when running on a limited environment" id="647004193">
387
        <filter comment="Code is protected when running on a limited environment" id="647004193">
388
<message_arguments>
388
            <message_arguments>
389
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePluginAttributes(Attributes)"/>
389
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePluginAttributes(Attributes)"/>
390
<message_argument value="Attributes"/>
390
                <message_argument value="Attributes"/>
391
<message_argument value="getValue(int)"/>
391
                <message_argument value="getValue(int)"/>
392
<message_argument value="OSGi/Minimum-1.2"/>
392
                <message_argument value="OSGi/Minimum-1.2"/>
393
</message_arguments>
393
            </message_arguments>
394
</filter>
394
        </filter>
395
<filter comment="Code is protected when running on a limited environment" id="647004193">
395
        <filter comment="Code is protected when running on a limited environment" id="647004193">
396
<message_arguments>
396
            <message_arguments>
397
<message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePluginRequiresImport(Attributes)"/>
397
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.PluginParser.parsePluginRequiresImport(Attributes)"/>
398
<message_argument value="Attributes"/>
398
                <message_argument value="Attributes"/>
399
<message_argument value="getValue(String, String)"/>
399
                <message_argument value="getValue(String, String)"/>
400
<message_argument value="OSGi/Minimum-1.2"/>
400
                <message_argument value="OSGi/Minimum-1.2"/>
401
</message_arguments>
401
            </message_arguments>
402
</filter>
402
        </filter>
403
</resource>
403
    </resource>
404
<resource path="eclipseAdaptor/src/org/eclipse/equinox/log/internal/ExtendedLogEntryImpl.java" type="org.eclipse.equinox.log.internal.ExtendedLogEntryImpl">
404
    <resource path="eclipseAdaptor/src/org/eclipse/equinox/log/internal/ExtendedLogEntryImpl.java" type="org.eclipse.equinox.log.internal.ExtendedLogEntryImpl">
405
<filter comment="Code is protected by reflection check." id="647004193">
405
        <filter comment="Code is protected by reflection check." id="647004193">
406
<message_arguments>
406
            <message_arguments>
407
<message_argument value="org.eclipse.equinox.log.internal.ExtendedLogEntryImpl.getId(Thread)"/>
407
                <message_argument value="org.eclipse.equinox.log.internal.ExtendedLogEntryImpl.getId(Thread)"/>
408
<message_argument value="Thread"/>
408
                <message_argument value="Thread"/>
409
<message_argument value="getId()"/>
409
                <message_argument value="getId()"/>
410
<message_argument value="J2SE-1.4"/>
410
                <message_argument value="J2SE-1.4"/>
411
</message_arguments>
411
            </message_arguments>
412
</filter>
412
        </filter>
413
<filter comment="protected by reflection method check." id="647004193">
413
        <filter comment="protected by reflection method check." id="647004193">
414
<message_arguments>
414
            <message_arguments>
415
<message_argument value="org.eclipse.equinox.log.internal.ExtendedLogEntryImpl.getId(Thread)"/>
415
                <message_argument value="org.eclipse.equinox.log.internal.ExtendedLogEntryImpl.getId(Thread)"/>
416
<message_argument value="Thread"/>
416
                <message_argument value="Thread"/>
417
<message_argument value="getId()"/>
417
                <message_argument value="getId()"/>
418
<message_argument value="OSGi/Minimum-1.2"/>
418
                <message_argument value="OSGi/Minimum-1.2"/>
419
</message_arguments>
419
            </message_arguments>
420
</filter>
420
        </filter>
421
</resource>
421
    </resource>
422
<resource path="osgi/src/org/osgi/framework/AdaptPermission.java" type="org.osgi.framework.AdaptPermission">
422
    <resource path="osgi/src/org/osgi/framework/AdaptPermission.java" type="org.osgi.framework.AdaptPermission">
423
<filter comment="Ignore OSGi API" id="1110441988">
423
        <filter comment="Ignore OSGi API" id="1110441988">
424
<message_arguments>
424
            <message_arguments>
425
<message_argument value="org.osgi.framework.AdaptPermission"/>
425
                <message_argument value="org.osgi.framework.AdaptPermission"/>
426
</message_arguments>
426
            </message_arguments>
427
</filter>
427
        </filter>
428
</resource>
428
    </resource>
429
<resource path="osgi/src/org/osgi/framework/AdminPermission.java" type="org.osgi.framework.AdminPermission">
429
    <resource path="osgi/src/org/osgi/framework/AdminPermission.java" type="org.osgi.framework.AdminPermission">
430
<filter comment="Ignore OSGi API" id="1141899266">
430
        <filter comment="Ignore OSGi API" id="1141899266">
431
<message_arguments>
431
            <message_arguments>
432
<message_argument value="1.6"/>
432
                <message_argument value="1.6"/>
433
<message_argument value="3.7"/>
433
                <message_argument value="3.7"/>
434
<message_argument value="WEAVE"/>
434
                <message_argument value="WEAVE"/>
435
</message_arguments>
435
            </message_arguments>
436
</filter>
436
        </filter>
437
</resource>
437
    </resource>
438
<resource path="osgi/src/org/osgi/framework/Bundle.java" type="org.osgi.framework.Bundle">
438
    <resource path="osgi/src/org/osgi/framework/Bundle.java" type="org.osgi.framework.Bundle">
439
<filter id="403853384">
439
        <filter id="403853384">
440
<message_arguments>
440
            <message_arguments>
441
<message_argument value="org.osgi.framework.Bundle"/>
441
                <message_argument value="org.osgi.framework.Bundle"/>
442
</message_arguments>
442
            </message_arguments>
443
</filter>
443
        </filter>
444
<filter comment="Ignore OSGi API." id="1209008130">
444
        <filter comment="Ignore OSGi API." id="1209008130">
445
<message_arguments>
445
            <message_arguments>
446
<message_argument value="1.6"/>
446
                <message_argument value="1.6"/>
447
<message_argument value="3.7"/>
447
                <message_argument value="3.7"/>
448
<message_argument value="adapt(Class&lt;A&gt;)"/>
448
                <message_argument value="adapt(Class&lt;A&gt;)"/>
449
</message_arguments>
449
            </message_arguments>
450
</filter>
450
        </filter>
451
<filter comment="Ignore OSGi API." id="1209008130">
451
        <filter comment="Ignore OSGi API." id="1209008130">
452
<message_arguments>
452
            <message_arguments>
453
<message_argument value="1.6"/>
453
                <message_argument value="1.6"/>
454
<message_argument value="3.7"/>
454
                <message_argument value="3.7"/>
455
<message_argument value="getDataFile(String)"/>
455
                <message_argument value="getDataFile(String)"/>
456
</message_arguments>
456
            </message_arguments>
457
</filter>
457
        </filter>
458
</resource>
458
    </resource>
459
<resource path="osgi/src/org/osgi/framework/BundleContext.java" type="org.osgi.framework.BundleContext">
459
    <resource path="osgi/src/org/osgi/framework/BundleContext.java" type="org.osgi.framework.BundleContext">
460
<filter comment="ignore OSGi API" id="403853384">
460
        <filter comment="ignore OSGi API" id="403853384">
461
<message_arguments>
461
            <message_arguments>
462
<message_argument value="org.osgi.framework.BundleContext"/>
462
                <message_argument value="org.osgi.framework.BundleContext"/>
463
</message_arguments>
463
            </message_arguments>
464
</filter>
464
        </filter>
465
<filter comment="ignore OSGi API" id="1209008130">
465
        <filter comment="ignore OSGi API" id="1209008130">
466
<message_arguments>
466
            <message_arguments>
467
<message_argument value="1.6"/>
467
                <message_argument value="1.6"/>
468
<message_argument value="3.7"/>
468
                <message_argument value="3.7"/>
469
<message_argument value="getBundle(String)"/>
469
                <message_argument value="getBundle(String)"/>
470
</message_arguments>
470
            </message_arguments>
471
</filter>
471
        </filter>
472
<filter comment="ignore OSGi API" id="1209008130">
472
        <filter comment="ignore OSGi API" id="1209008130">
473
<message_arguments>
473
            <message_arguments>
474
<message_argument value="1.6"/>
474
                <message_argument value="1.6"/>
475
<message_argument value="3.7"/>
475
                <message_argument value="3.7"/>
476
<message_argument value="getServiceReference(Class&lt;S&gt;)"/>
476
                <message_argument value="getServiceReference(Class&lt;S&gt;)"/>
477
</message_arguments>
477
            </message_arguments>
478
</filter>
478
        </filter>
479
<filter comment="ignore OSGi API" id="1209008130">
479
        <filter comment="ignore OSGi API" id="1209008130">
480
<message_arguments>
480
            <message_arguments>
481
<message_argument value="1.6"/>
481
                <message_argument value="1.6"/>
482
<message_argument value="3.7"/>
482
                <message_argument value="3.7"/>
483
<message_argument value="getServiceReferences(Class&lt;S&gt;, String)"/>
483
                <message_argument value="getServiceReferences(Class&lt;S&gt;, String)"/>
484
</message_arguments>
484
            </message_arguments>
485
</filter>
485
        </filter>
486
<filter comment="ignore OSGi API" id="1209008130">
486
        <filter comment="ignore OSGi API" id="1209008130">
487
<message_arguments>
487
            <message_arguments>
488
<message_argument value="1.6"/>
488
                <message_argument value="1.6"/>
489
<message_argument value="3.7"/>
489
                <message_argument value="3.7"/>
490
<message_argument value="registerService(Class&lt;S&gt;, S, Dictionary&lt;String,?&gt;)"/>
490
                <message_argument value="registerService(Class&lt;S&gt;, S, Dictionary&lt;String,?&gt;)"/>
491
</message_arguments>
491
            </message_arguments>
492
</filter>
492
        </filter>
493
</resource>
493
    </resource>
494
<resource path="osgi/src/org/osgi/framework/BundleEvent.java" type="org.osgi.framework.BundleEvent">
494
    <resource path="osgi/src/org/osgi/framework/BundleEvent.java" type="org.osgi.framework.BundleEvent">
495
<filter comment="Ignore OSGi API" id="1141899266">
495
        <filter comment="Ignore OSGi API" id="1141899266">
496
<message_arguments>
496
            <message_arguments>
497
<message_argument value="1.6"/>
497
                <message_argument value="1.6"/>
498
<message_argument value="3.7"/>
498
                <message_argument value="3.7"/>
499
<message_argument value="BundleEvent(int, Bundle, Bundle)"/>
499
                <message_argument value="BundleEvent(int, Bundle, Bundle)"/>
500
</message_arguments>
500
            </message_arguments>
501
</filter>
501
        </filter>
502
<filter comment="Ignore OSGi API" id="1141899266">
502
        <filter comment="Ignore OSGi API" id="1141899266">
503
<message_arguments>
503
            <message_arguments>
504
<message_argument value="1.6"/>
504
                <message_argument value="1.6"/>
505
<message_argument value="3.7"/>
505
                <message_argument value="3.7"/>
506
<message_argument value="getOrigin()"/>
506
                <message_argument value="getOrigin()"/>
507
</message_arguments>
507
            </message_arguments>
508
</filter>
508
        </filter>
509
</resource>
509
    </resource>
510
<resource path="osgi/src/org/osgi/framework/BundleException.java" type="org.osgi.framework.BundleException">
510
    <resource path="osgi/src/org/osgi/framework/BundleException.java" type="org.osgi.framework.BundleException">
511
<filter comment="Ignore OSGi API" id="1141899266">
511
        <filter comment="Ignore OSGi API" id="1141899266">
512
<message_arguments>
512
            <message_arguments>
513
<message_argument value="1.6"/>
513
                <message_argument value="1.6"/>
514
<message_argument value="3.7"/>
514
                <message_argument value="3.7"/>
515
<message_argument value="READ_ERROR"/>
515
                <message_argument value="READ_ERROR"/>
516
</message_arguments>
516
            </message_arguments>
517
</filter>
517
        </filter>
518
<filter comment="Ignore OSGi API." id="1141899266">
518
        <filter comment="Ignore OSGi API." id="1141899266">
519
<message_arguments>
519
            <message_arguments>
520
<message_argument value="1.6"/>
520
                <message_argument value="1.6"/>
521
<message_argument value="3.7"/>
521
                <message_argument value="3.7"/>
522
<message_argument value="REJECTED_BY_HOOK"/>
522
                <message_argument value="REJECTED_BY_HOOK"/>
523
</message_arguments>
523
            </message_arguments>
524
</filter>
524
        </filter>
525
</resource>
525
    </resource>
526
<resource path="osgi/src/org/osgi/framework/BundleReference.java" type="org.osgi.framework.BundleReference">
526
    <resource path="osgi/src/org/osgi/framework/BundleReference.java" type="org.osgi.framework.BundleReference">
527
<filter comment="Ignore OSGi API" id="403853384">
527
        <filter comment="Ignore OSGi API" id="403853384">
528
<message_arguments>
528
            <message_arguments>
529
<message_argument value="org.osgi.framework.BundleReference"/>
529
                <message_argument value="org.osgi.framework.BundleReference"/>
530
</message_arguments>
530
            </message_arguments>
531
</filter>
531
        </filter>
532
</resource>
532
    </resource>
533
<resource path="osgi/src/org/osgi/framework/CapabilityPermission.java" type="org.osgi.framework.CapabilityPermission">
533
    <resource path="osgi/src/org/osgi/framework/CapabilityPermission.java" type="org.osgi.framework.CapabilityPermission">
534
<filter comment="Ignore OSGi APIs." id="1108344834">
534
        <filter comment="Ignore OSGi APIs." id="1108344834">
535
<message_arguments>
535
            <message_arguments>
536
<message_argument value="1.6"/>
536
                <message_argument value="1.6"/>
537
<message_argument value="3.7"/>
537
                <message_argument value="3.7"/>
538
<message_argument value="org.osgi.framework.CapabilityPermission"/>
538
                <message_argument value="org.osgi.framework.CapabilityPermission"/>
539
</message_arguments>
539
            </message_arguments>
540
</filter>
540
        </filter>
541
</resource>
541
    </resource>
542
<resource path="osgi/src/org/osgi/framework/Constants.java" type="org.osgi.framework.Constants">
542
    <resource path="osgi/src/org/osgi/framework/Constants.java" type="org.osgi.framework.Constants">
543
<filter comment="Ignore OSGi APIs." id="403767336">
543
        <filter comment="Ignore OSGi APIs." id="403767336">
544
<message_arguments>
544
            <message_arguments>
545
<message_argument value="org.osgi.framework.Constants"/>
545
                <message_argument value="org.osgi.framework.Constants"/>
546
<message_argument value="EFFECTIVE_ACTIVE"/>
546
                <message_argument value="EFFECTIVE_ACTIVE"/>
547
</message_arguments>
547
            </message_arguments>
548
</filter>
548
        </filter>
549
<filter comment="Ignore OSGi APIs." id="403767336">
549
        <filter comment="Ignore OSGi APIs." id="403767336">
550
<message_arguments>
550
            <message_arguments>
551
<message_argument value="org.osgi.framework.Constants"/>
551
                <message_argument value="org.osgi.framework.Constants"/>
552
<message_argument value="EFFECTIVE_DIRECTIVE"/>
552
                <message_argument value="EFFECTIVE_DIRECTIVE"/>
553
</message_arguments>
553
            </message_arguments>
554
</filter>
554
        </filter>
555
<filter comment="Ignore OSGi APIs." id="403767336">
555
        <filter comment="Ignore OSGi APIs." id="403767336">
556
<message_arguments>
556
            <message_arguments>
557
<message_argument value="org.osgi.framework.Constants"/>
557
                <message_argument value="org.osgi.framework.Constants"/>
558
<message_argument value="EFFECTIVE_RESOLVE"/>
558
                <message_argument value="EFFECTIVE_RESOLVE"/>
559
</message_arguments>
559
            </message_arguments>
560
</filter>
560
        </filter>
561
<filter comment="Ignore OSGi API" id="403767336">
561
        <filter comment="Ignore OSGi API" id="403767336">
562
<message_arguments>
562
            <message_arguments>
563
<message_argument value="org.osgi.framework.Constants"/>
563
                <message_argument value="org.osgi.framework.Constants"/>
564
<message_argument value="FRAMEWORK_BSNVERSION"/>
564
                <message_argument value="FRAMEWORK_BSNVERSION"/>
565
</message_arguments>
565
            </message_arguments>
566
</filter>
566
        </filter>
567
<filter comment="Ignore OSGi API" id="403767336">
567
        <filter comment="Ignore OSGi API" id="403767336">
568
<message_arguments>
568
            <message_arguments>
569
<message_argument value="org.osgi.framework.Constants"/>
569
                <message_argument value="org.osgi.framework.Constants"/>
570
<message_argument value="FRAMEWORK_BSNVERSION_MULTIPLE"/>
570
                <message_argument value="FRAMEWORK_BSNVERSION_MULTIPLE"/>
571
</message_arguments>
571
            </message_arguments>
572
</filter>
572
        </filter>
573
<filter comment="Ignore OSGi API" id="403767336">
573
        <filter comment="Ignore OSGi API" id="403767336">
574
<message_arguments>
574
            <message_arguments>
575
<message_argument value="org.osgi.framework.Constants"/>
575
                <message_argument value="org.osgi.framework.Constants"/>
576
<message_argument value="FRAMEWORK_BSNVERSION_SINGLE"/>
576
                <message_argument value="FRAMEWORK_BSNVERSION_SINGLE"/>
577
</message_arguments>
577
            </message_arguments>
578
</filter>
578
        </filter>
579
<filter id="403767336">
579
        <filter id="403767336">
580
<message_arguments>
580
            <message_arguments>
581
<message_argument value="org.osgi.framework.Constants"/>
581
                <message_argument value="org.osgi.framework.Constants"/>
582
<message_argument value="FRAMEWORK_COMMAND_ABSPATH"/>
582
                <message_argument value="FRAMEWORK_COMMAND_ABSPATH"/>
583
</message_arguments>
583
            </message_arguments>
584
</filter>
584
        </filter>
585
<filter id="403767336">
585
        <filter id="403767336">
586
<message_arguments>
586
            <message_arguments>
587
<message_argument value="org.osgi.framework.Constants"/>
587
                <message_argument value="org.osgi.framework.Constants"/>
588
<message_argument value="FRAMEWORK_JARURLS"/>
588
                <message_argument value="FRAMEWORK_JARURLS"/>
589
</message_arguments>
589
            </message_arguments>
590
</filter>
590
        </filter>
591
<filter comment="Ignore OSGi APIs." id="403767336">
591
        <filter comment="Ignore OSGi APIs." id="403767336">
592
<message_arguments>
592
            <message_arguments>
593
<message_argument value="org.osgi.framework.Constants"/>
593
                <message_argument value="org.osgi.framework.Constants"/>
594
<message_argument value="FRAMEWORK_SYSTEMCAPABILITIES"/>
594
                <message_argument value="FRAMEWORK_SYSTEMCAPABILITIES"/>
595
</message_arguments>
595
            </message_arguments>
596
</filter>
596
        </filter>
597
<filter comment="Ignore OSGi APIs." id="403767336">
597
        <filter comment="Ignore OSGi APIs." id="403767336">
598
<message_arguments>
598
            <message_arguments>
599
<message_argument value="org.osgi.framework.Constants"/>
599
                <message_argument value="org.osgi.framework.Constants"/>
600
<message_argument value="FRAMEWORK_SYSTEMCAPABILITIES_EXTRA"/>
600
                <message_argument value="FRAMEWORK_SYSTEMCAPABILITIES_EXTRA"/>
601
</message_arguments>
601
            </message_arguments>
602
</filter>
602
        </filter>
603
<filter id="403767336">
603
        <filter id="403767336">
604
<message_arguments>
604
            <message_arguments>
605
<message_argument value="org.osgi.framework.Constants"/>
605
                <message_argument value="org.osgi.framework.Constants"/>
606
<message_argument value="FRAMEWORK_UUID"/>
606
                <message_argument value="FRAMEWORK_UUID"/>
607
</message_arguments>
607
            </message_arguments>
608
</filter>
608
        </filter>
609
<filter comment="Ignore OSGi APIs." id="403767336">
609
        <filter comment="Ignore OSGi APIs." id="403767336">
610
<message_arguments>
610
            <message_arguments>
611
<message_argument value="org.osgi.framework.Constants"/>
611
                <message_argument value="org.osgi.framework.Constants"/>
612
<message_argument value="PROVIDE_CAPABILITY"/>
612
                <message_argument value="PROVIDE_CAPABILITY"/>
613
</message_arguments>
613
            </message_arguments>
614
</filter>
614
        </filter>
615
<filter id="403767336">
615
        <filter id="403767336">
616
<message_arguments>
616
            <message_arguments>
617
<message_argument value="org.osgi.framework.Constants"/>
617
                <message_argument value="org.osgi.framework.Constants"/>
618
<message_argument value="REMOTE_CONFIGS_SUPPORTED"/>
618
                <message_argument value="REMOTE_CONFIGS_SUPPORTED"/>
619
</message_arguments>
619
            </message_arguments>
620
</filter>
620
        </filter>
621
<filter id="403767336">
621
        <filter id="403767336">
622
<message_arguments>
622
            <message_arguments>
623
<message_argument value="org.osgi.framework.Constants"/>
623
                <message_argument value="org.osgi.framework.Constants"/>
624
<message_argument value="REMOTE_INTENTS_SUPPORTED"/>
624
                <message_argument value="REMOTE_INTENTS_SUPPORTED"/>
625
</message_arguments>
625
            </message_arguments>
626
</filter>
626
        </filter>
627
<filter comment="Ignore OSGi APIs." id="403767336">
627
        <filter comment="Ignore OSGi APIs." id="403767336">
628
<message_arguments>
628
            <message_arguments>
629
<message_argument value="org.osgi.framework.Constants"/>
629
                <message_argument value="org.osgi.framework.Constants"/>
630
<message_argument value="REQUIRE_CAPABILITY"/>
630
                <message_argument value="REQUIRE_CAPABILITY"/>
631
</message_arguments>
631
            </message_arguments>
632
</filter>
632
        </filter>
633
<filter id="403767336">
633
        <filter id="403767336">
634
<message_arguments>
634
            <message_arguments>
635
<message_argument value="org.osgi.framework.Constants"/>
635
                <message_argument value="org.osgi.framework.Constants"/>
636
<message_argument value="SERVICE_EXPORTED_CONFIGS"/>
636
                <message_argument value="SERVICE_EXPORTED_CONFIGS"/>
637
</message_arguments>
637
            </message_arguments>
638
</filter>
638
        </filter>
639
<filter id="403767336">
639
        <filter id="403767336">
640
<message_arguments>
640
            <message_arguments>
641
<message_argument value="org.osgi.framework.Constants"/>
641
                <message_argument value="org.osgi.framework.Constants"/>
642
<message_argument value="SERVICE_EXPORTED_INTENTS"/>
642
                <message_argument value="SERVICE_EXPORTED_INTENTS"/>
643
</message_arguments>
643
            </message_arguments>
644
</filter>
644
        </filter>
645
<filter id="403767336">
645
        <filter id="403767336">
646
<message_arguments>
646
            <message_arguments>
647
<message_argument value="org.osgi.framework.Constants"/>
647
                <message_argument value="org.osgi.framework.Constants"/>
648
<message_argument value="SERVICE_EXPORTED_INTENTS_EXTRA"/>
648
                <message_argument value="SERVICE_EXPORTED_INTENTS_EXTRA"/>
649
</message_arguments>
649
            </message_arguments>
650
</filter>
650
        </filter>
651
<filter id="403767336">
651
        <filter id="403767336">
652
<message_arguments>
652
            <message_arguments>
653
<message_argument value="org.osgi.framework.Constants"/>
653
                <message_argument value="org.osgi.framework.Constants"/>
654
<message_argument value="SERVICE_EXPORTED_INTERFACES"/>
654
                <message_argument value="SERVICE_EXPORTED_INTERFACES"/>
655
</message_arguments>
655
            </message_arguments>
656
</filter>
656
        </filter>
657
<filter id="403767336">
657
        <filter id="403767336">
658
<message_arguments>
658
            <message_arguments>
659
<message_argument value="org.osgi.framework.Constants"/>
659
                <message_argument value="org.osgi.framework.Constants"/>
660
<message_argument value="SERVICE_IMPORTED"/>
660
                <message_argument value="SERVICE_IMPORTED"/>
661
</message_arguments>
661
            </message_arguments>
662
</filter>
662
        </filter>
663
<filter id="403767336">
663
        <filter id="403767336">
664
<message_arguments>
664
            <message_arguments>
665
<message_argument value="org.osgi.framework.Constants"/>
665
                <message_argument value="org.osgi.framework.Constants"/>
666
<message_argument value="SERVICE_IMPORTED_CONFIGS"/>
666
                <message_argument value="SERVICE_IMPORTED_CONFIGS"/>
667
</message_arguments>
667
            </message_arguments>
668
</filter>
668
        </filter>
669
<filter id="403767336">
669
        <filter id="403767336">
670
<message_arguments>
670
            <message_arguments>
671
<message_argument value="org.osgi.framework.Constants"/>
671
                <message_argument value="org.osgi.framework.Constants"/>
672
<message_argument value="SERVICE_INTENTS"/>
672
                <message_argument value="SERVICE_INTENTS"/>
673
</message_arguments>
673
            </message_arguments>
674
</filter>
674
        </filter>
675
<filter comment="Ignore OSGi API" id="403853384">
675
        <filter comment="Ignore OSGi API" id="403853384">
676
<message_arguments>
676
            <message_arguments>
677
<message_argument value="org.osgi.framework.Constants"/>
677
                <message_argument value="org.osgi.framework.Constants"/>
678
</message_arguments>
678
            </message_arguments>
679
</filter>
679
        </filter>
680
<filter comment="Ignore OSGi APIs." id="1209008130">
680
        <filter comment="Ignore OSGi APIs." id="1209008130">
681
<message_arguments>
681
            <message_arguments>
682
<message_argument value="1.6"/>
682
                <message_argument value="1.6"/>
683
<message_argument value="3.7"/>
683
                <message_argument value="3.7"/>
684
<message_argument value="EFFECTIVE_ACTIVE"/>
684
                <message_argument value="EFFECTIVE_ACTIVE"/>
685
</message_arguments>
685
            </message_arguments>
686
</filter>
686
        </filter>
687
<filter comment="Ignore OSGi APIs." id="1209008130">
687
        <filter comment="Ignore OSGi APIs." id="1209008130">
688
<message_arguments>
688
            <message_arguments>
689
<message_argument value="1.6"/>
689
                <message_argument value="1.6"/>
690
<message_argument value="3.7"/>
690
                <message_argument value="3.7"/>
691
<message_argument value="EFFECTIVE_DIRECTIVE"/>
691
                <message_argument value="EFFECTIVE_DIRECTIVE"/>
692
</message_arguments>
692
            </message_arguments>
693
</filter>
693
        </filter>
694
<filter comment="Ignore OSGi APIs." id="1209008130">
694
        <filter comment="Ignore OSGi APIs." id="1209008130">
695
<message_arguments>
695
            <message_arguments>
696
<message_argument value="1.6"/>
696
                <message_argument value="1.6"/>
697
<message_argument value="3.7"/>
697
                <message_argument value="3.7"/>
698
<message_argument value="EFFECTIVE_RESOLVE"/>
698
                <message_argument value="EFFECTIVE_RESOLVE"/>
699
</message_arguments>
699
            </message_arguments>
700
</filter>
700
        </filter>
701
<filter comment="Ignore OSGi APIs." id="1209008130">
701
        <filter comment="Ignore OSGi APIs." id="1209008130">
702
<message_arguments>
702
            <message_arguments>
703
<message_argument value="1.6"/>
703
                <message_argument value="1.6"/>
704
<message_argument value="3.7"/>
704
                <message_argument value="3.7"/>
705
<message_argument value="FILTER_ATTRIBUTE"/>
705
                <message_argument value="FILTER_ATTRIBUTE"/>
706
</message_arguments>
706
            </message_arguments>
707
</filter>
707
        </filter>
708
<filter comment="Ignore OSGI API." id="1209008130">
708
        <filter comment="Ignore OSGI API." id="1209008130">
709
<message_arguments>
709
            <message_arguments>
710
<message_argument value="1.6"/>
710
                <message_argument value="1.6"/>
711
<message_argument value="3.7"/>
711
                <message_argument value="3.7"/>
712
<message_argument value="FILTER_DIRECTIVE"/>
712
                <message_argument value="FILTER_DIRECTIVE"/>
713
</message_arguments>
713
            </message_arguments>
714
</filter>
714
        </filter>
715
<filter comment="Ignore OSGi API" id="1209008130">
715
        <filter comment="Ignore OSGi API" id="1209008130">
716
<message_arguments>
716
            <message_arguments>
717
<message_argument value="1.6"/>
717
                <message_argument value="1.6"/>
718
<message_argument value="3.7"/>
718
                <message_argument value="3.7"/>
719
<message_argument value="FRAMEWORK_BSNVERSION"/>
719
                <message_argument value="FRAMEWORK_BSNVERSION"/>
720
</message_arguments>
720
            </message_arguments>
721
</filter>
721
        </filter>
722
<filter comment="Ignore OSGi API" id="1209008130">
722
        <filter comment="Ignore OSGi API" id="1209008130">
723
<message_arguments>
723
            <message_arguments>
724
<message_argument value="1.6"/>
724
                <message_argument value="1.6"/>
725
<message_argument value="3.7"/>
725
                <message_argument value="3.7"/>
726
<message_argument value="FRAMEWORK_BSNVERSION_MULTIPLE"/>
726
                <message_argument value="FRAMEWORK_BSNVERSION_MULTIPLE"/>
727
</message_arguments>
727
            </message_arguments>
728
</filter>
728
        </filter>
729
<filter comment="Ignore OSGi API" id="1209008130">
729
        <filter comment="Ignore OSGi API" id="1209008130">
730
<message_arguments>
730
            <message_arguments>
731
<message_argument value="1.6"/>
731
                <message_argument value="1.6"/>
732
<message_argument value="3.7"/>
732
                <message_argument value="3.7"/>
733
<message_argument value="FRAMEWORK_BSNVERSION_SINGLE"/>
733
                <message_argument value="FRAMEWORK_BSNVERSION_SINGLE"/>
734
</message_arguments>
734
            </message_arguments>
735
</filter>
735
        </filter>
736
<filter id="1209008130">
736
        <filter id="1209008130">
737
<message_arguments>
737
            <message_arguments>
738
<message_argument value="1.6"/>
738
                <message_argument value="1.6"/>
739
<message_argument value="3.7"/>
739
                <message_argument value="3.7"/>
740
<message_argument value="FRAMEWORK_COMMAND_ABSPATH"/>
740
                <message_argument value="FRAMEWORK_COMMAND_ABSPATH"/>
741
</message_arguments>
741
            </message_arguments>
742
</filter>
742
        </filter>
743
<filter id="1209008130">
743
        <filter id="1209008130">
744
<message_arguments>
744
            <message_arguments>
745
<message_argument value="1.6"/>
745
                <message_argument value="1.6"/>
746
<message_argument value="3.7"/>
746
                <message_argument value="3.7"/>
747
<message_argument value="FRAMEWORK_JARURLS"/>
747
                <message_argument value="FRAMEWORK_JARURLS"/>
748
</message_arguments>
748
            </message_arguments>
749
</filter>
749
        </filter>
750
<filter comment="Ignore OSGi APIs." id="1209008130">
750
        <filter comment="Ignore OSGi APIs." id="1209008130">
751
<message_arguments>
751
            <message_arguments>
752
<message_argument value="1.6"/>
752
                <message_argument value="1.6"/>
753
<message_argument value="3.7"/>
753
                <message_argument value="3.7"/>
754
<message_argument value="FRAMEWORK_SYSTEMCAPABILITIES"/>
754
                <message_argument value="FRAMEWORK_SYSTEMCAPABILITIES"/>
755
</message_arguments>
755
            </message_arguments>
756
</filter>
756
        </filter>
757
<filter comment="Ignore OSGi APIs." id="1209008130">
757
        <filter comment="Ignore OSGi APIs." id="1209008130">
758
<message_arguments>
758
            <message_arguments>
759
<message_argument value="1.6"/>
759
                <message_argument value="1.6"/>
760
<message_argument value="3.7"/>
760
                <message_argument value="3.7"/>
761
<message_argument value="FRAMEWORK_SYSTEMCAPABILITIES_EXTRA"/>
761
                <message_argument value="FRAMEWORK_SYSTEMCAPABILITIES_EXTRA"/>
762
</message_arguments>
762
            </message_arguments>
763
</filter>
763
        </filter>
764
<filter id="1209008130">
764
        <filter id="1209008130">
765
<message_arguments>
765
            <message_arguments>
766
<message_argument value="1.6"/>
766
                <message_argument value="1.6"/>
767
<message_argument value="3.7"/>
767
                <message_argument value="3.7"/>
768
<message_argument value="FRAMEWORK_UUID"/>
768
                <message_argument value="FRAMEWORK_UUID"/>
769
</message_arguments>
769
            </message_arguments>
770
</filter>
770
        </filter>
771
<filter comment="Ignore OSGi APIs." id="1209008130">
771
        <filter comment="Ignore OSGi APIs." id="1209008130">
772
<message_arguments>
772
            <message_arguments>
773
<message_argument value="1.6"/>
773
                <message_argument value="1.6"/>
774
<message_argument value="3.7"/>
774
                <message_argument value="3.7"/>
775
<message_argument value="PROVIDE_CAPABILITY"/>
775
                <message_argument value="PROVIDE_CAPABILITY"/>
776
</message_arguments>
776
            </message_arguments>
777
</filter>
777
        </filter>
778
<filter id="1209008130">
778
        <filter id="1209008130">
779
<message_arguments>
779
            <message_arguments>
780
<message_argument value="1.6"/>
780
                <message_argument value="1.6"/>
781
<message_argument value="3.7"/>
781
                <message_argument value="3.7"/>
782
<message_argument value="REMOTE_CONFIGS_SUPPORTED"/>
782
                <message_argument value="REMOTE_CONFIGS_SUPPORTED"/>
783
</message_arguments>
783
            </message_arguments>
784
</filter>
784
        </filter>
785
<filter id="1209008130">
785
        <filter id="1209008130">
786
<message_arguments>
786
            <message_arguments>
787
<message_argument value="1.6"/>
787
                <message_argument value="1.6"/>
788
<message_argument value="3.7"/>
788
                <message_argument value="3.7"/>
789
<message_argument value="REMOTE_INTENTS_SUPPORTED"/>
789
                <message_argument value="REMOTE_INTENTS_SUPPORTED"/>
790
</message_arguments>
790
            </message_arguments>
791
</filter>
791
        </filter>
792
<filter comment="Ignore OSGi APIs." id="1209008130">
792
        <filter comment="Ignore OSGi APIs." id="1209008130">
793
<message_arguments>
793
            <message_arguments>
794
<message_argument value="1.6"/>
794
                <message_argument value="1.6"/>
795
<message_argument value="3.7"/>
795
                <message_argument value="3.7"/>
796
<message_argument value="REQUIRE_CAPABILITY"/>
796
                <message_argument value="REQUIRE_CAPABILITY"/>
797
</message_arguments>
797
            </message_arguments>
798
</filter>
798
        </filter>
799
<filter id="1209008130">
799
        <filter id="1209008130">
800
<message_arguments>
800
            <message_arguments>
801
<message_argument value="1.6"/>
801
                <message_argument value="1.6"/>
802
<message_argument value="3.7"/>
802
                <message_argument value="3.7"/>
803
<message_argument value="SERVICE_EXPORTED_CONFIGS"/>
803
                <message_argument value="SERVICE_EXPORTED_CONFIGS"/>
804
</message_arguments>
804
            </message_arguments>
805
</filter>
805
        </filter>
806
<filter id="1209008130">
806
        <filter id="1209008130">
807
<message_arguments>
807
            <message_arguments>
808
<message_argument value="1.6"/>
808
                <message_argument value="1.6"/>
809
<message_argument value="3.7"/>
809
                <message_argument value="3.7"/>
810
<message_argument value="SERVICE_EXPORTED_INTENTS"/>
810
                <message_argument value="SERVICE_EXPORTED_INTENTS"/>
811
</message_arguments>
811
            </message_arguments>
812
</filter>
812
        </filter>
813
<filter id="1209008130">
813
        <filter id="1209008130">
814
<message_arguments>
814
            <message_arguments>
815
<message_argument value="1.6"/>
815
                <message_argument value="1.6"/>
816
<message_argument value="3.7"/>
816
                <message_argument value="3.7"/>
817
<message_argument value="SERVICE_EXPORTED_INTENTS_EXTRA"/>
817
                <message_argument value="SERVICE_EXPORTED_INTENTS_EXTRA"/>
818
</message_arguments>
818
            </message_arguments>
819
</filter>
819
        </filter>
820
<filter id="1209008130">
820
        <filter id="1209008130">
821
<message_arguments>
821
            <message_arguments>
822
<message_argument value="1.6"/>
822
                <message_argument value="1.6"/>
823
<message_argument value="3.7"/>
823
                <message_argument value="3.7"/>
824
<message_argument value="SERVICE_EXPORTED_INTERFACES"/>
824
                <message_argument value="SERVICE_EXPORTED_INTERFACES"/>
825
</message_arguments>
825
            </message_arguments>
826
</filter>
826
        </filter>
827
<filter id="1209008130">
827
        <filter id="1209008130">
828
<message_arguments>
828
            <message_arguments>
829
<message_argument value="1.6"/>
829
                <message_argument value="1.6"/>
830
<message_argument value="3.7"/>
830
                <message_argument value="3.7"/>
831
<message_argument value="SERVICE_IMPORTED"/>
831
                <message_argument value="SERVICE_IMPORTED"/>
832
</message_arguments>
832
            </message_arguments>
833
</filter>
833
        </filter>
834
<filter id="1209008130">
834
        <filter id="1209008130">
835
<message_arguments>
835
            <message_arguments>
836
<message_argument value="1.6"/>
836
                <message_argument value="1.6"/>
837
<message_argument value="3.7"/>
837
                <message_argument value="3.7"/>
838
<message_argument value="SERVICE_IMPORTED_CONFIGS"/>
838
                <message_argument value="SERVICE_IMPORTED_CONFIGS"/>
839
</message_arguments>
839
            </message_arguments>
840
</filter>
840
        </filter>
841
<filter id="1209008130">
841
        <filter id="1209008130">
842
<message_arguments>
842
            <message_arguments>
843
<message_argument value="1.6"/>
843
                <message_argument value="1.6"/>
844
<message_argument value="3.7"/>
844
                <message_argument value="3.7"/>
845
<message_argument value="SERVICE_INTENTS"/>
845
                <message_argument value="SERVICE_INTENTS"/>
846
</message_arguments>
846
            </message_arguments>
847
</filter>
847
        </filter>
848
</resource>
848
    </resource>
849
<resource path="osgi/src/org/osgi/framework/Filter.java" type="org.osgi.framework.Filter">
849
    <resource path="osgi/src/org/osgi/framework/Filter.java" type="org.osgi.framework.Filter">
850
<filter comment="Ignore OSGi API" id="403853384">
850
        <filter comment="Ignore OSGi API" id="403853384">
851
<message_arguments>
851
            <message_arguments>
852
<message_argument value="org.osgi.framework.Filter"/>
852
                <message_argument value="org.osgi.framework.Filter"/>
853
</message_arguments>
853
            </message_arguments>
854
</filter>
854
        </filter>
855
<filter comment="Ignore OSGi API" id="1209008130">
855
        <filter comment="Ignore OSGi API" id="1209008130">
856
<message_arguments>
856
            <message_arguments>
857
<message_argument value="1.6"/>
857
                <message_argument value="1.6"/>
858
<message_argument value="3.7"/>
858
                <message_argument value="3.7"/>
859
<message_argument value="matches(Map&lt;String,?&gt;)"/>
859
                <message_argument value="matches(Map&lt;String,?&gt;)"/>
860
</message_arguments>
860
            </message_arguments>
861
</filter>
861
        </filter>
862
</resource>
862
    </resource>
863
<resource path="osgi/src/org/osgi/framework/ServiceException.java" type="org.osgi.framework.ServiceException">
863
    <resource path="osgi/src/org/osgi/framework/ServiceException.java" type="org.osgi.framework.ServiceException">
864
<filter comment="Ignore OSGi API" id="1141899266">
864
        <filter comment="Ignore OSGi API" id="1141899266">
865
<message_arguments>
865
            <message_arguments>
866
<message_argument value="1.6"/>
866
                <message_argument value="1.6"/>
867
<message_argument value="3.7"/>
867
                <message_argument value="3.7"/>
868
<message_argument value="FACTORY_RECURSION"/>
868
                <message_argument value="FACTORY_RECURSION"/>
869
</message_arguments>
869
            </message_arguments>
870
</filter>
870
        </filter>
871
</resource>
871
    </resource>
872
<resource path="osgi/src/org/osgi/framework/ServiceReference.java" type="org.osgi.framework.ServiceReference">
872
    <resource path="osgi/src/org/osgi/framework/ServiceReference.java" type="org.osgi.framework.ServiceReference">
873
<filter comment="Ignore OSGi API" id="403853384">
873
        <filter comment="Ignore OSGi API" id="403853384">
874
<message_arguments>
874
            <message_arguments>
875
<message_argument value="org.osgi.framework.ServiceReference"/>
875
                <message_argument value="org.osgi.framework.ServiceReference"/>
876
</message_arguments>
876
            </message_arguments>
877
</filter>
877
        </filter>
878
</resource>
878
    </resource>
879
<resource path="osgi/src/org/osgi/framework/ServiceRegistration.java" type="org.osgi.framework.ServiceRegistration">
879
    <resource path="osgi/src/org/osgi/framework/ServiceRegistration.java" type="org.osgi.framework.ServiceRegistration">
880
<filter comment="Ignore OSGi API" id="403853384">
880
        <filter comment="Ignore OSGi API" id="403853384">
881
<message_arguments>
881
            <message_arguments>
882
<message_argument value="org.osgi.framework.ServiceRegistration"/>
882
                <message_argument value="org.osgi.framework.ServiceRegistration"/>
883
</message_arguments>
883
            </message_arguments>
884
</filter>
884
        </filter>
885
</resource>
885
    </resource>
886
<resource path="osgi/src/org/osgi/framework/Version.java" type="org.osgi.framework.Version">
886
    <resource path="osgi/src/org/osgi/framework/Version.java" type="org.osgi.framework.Version">
887
<filter id="1143996420">
887
        <filter id="1143996420">
888
<message_arguments>
888
            <message_arguments>
889
<message_argument value="compareTo(Version)"/>
889
                <message_argument value="compareTo(Version)"/>
890
</message_arguments>
890
            </message_arguments>
891
</filter>
891
        </filter>
892
</resource>
892
    </resource>
893
<resource path="osgi/src/org/osgi/framework/hooks/bundle/EventHook.java" type="org.osgi.framework.hooks.bundle.EventHook">
893
    <resource path="osgi/src/org/osgi/framework/hooks/bundle/EventHook.java" type="org.osgi.framework.hooks.bundle.EventHook">
894
<filter comment="Ingore OSGi API." id="1110441988">
894
        <filter comment="Ingore OSGi API." id="1110441988">
895
<message_arguments>
895
            <message_arguments>
896
<message_argument value="org.osgi.framework.hooks.bundle.EventHook"/>
896
                <message_argument value="org.osgi.framework.hooks.bundle.EventHook"/>
897
</message_arguments>
897
            </message_arguments>
898
</filter>
898
        </filter>
899
</resource>
899
    </resource>
900
<resource path="osgi/src/org/osgi/framework/hooks/bundle/FindHook.java" type="org.osgi.framework.hooks.bundle.FindHook">
900
    <resource path="osgi/src/org/osgi/framework/hooks/bundle/FindHook.java" type="org.osgi.framework.hooks.bundle.FindHook">
901
<filter comment="Ingore OSGi API." id="1110441988">
901
        <filter comment="Ingore OSGi API." id="1110441988">
902
<message_arguments>
902
            <message_arguments>
903
<message_argument value="org.osgi.framework.hooks.bundle.FindHook"/>
903
                <message_argument value="org.osgi.framework.hooks.bundle.FindHook"/>
904
</message_arguments>
904
            </message_arguments>
905
</filter>
905
        </filter>
906
</resource>
906
    </resource>
907
<resource path="osgi/src/org/osgi/framework/hooks/resolver/ResolverHook.java" type="org.osgi.framework.hooks.resolver.ResolverHook">
907
    <resource path="osgi/src/org/osgi/framework/hooks/resolver/ResolverHook.java" type="org.osgi.framework.hooks.resolver.ResolverHook">
908
<filter comment="Ignore OSGi API" id="1110441988">
908
        <filter comment="Ignore OSGi API" id="1110441988">
909
<message_arguments>
909
            <message_arguments>
910
<message_argument value="org.osgi.framework.hooks.resolver.ResolverHook"/>
910
                <message_argument value="org.osgi.framework.hooks.resolver.ResolverHook"/>
911
</message_arguments>
911
            </message_arguments>
912
</filter>
912
        </filter>
913
</resource>
913
    </resource>
914
<resource path="osgi/src/org/osgi/framework/hooks/resolver/ResolverHookFactory.java" type="org.osgi.framework.hooks.resolver.ResolverHookFactory">
914
    <resource path="osgi/src/org/osgi/framework/hooks/resolver/ResolverHookFactory.java" type="org.osgi.framework.hooks.resolver.ResolverHookFactory">
915
<filter comment="Ignore OSGi API" id="1110441988">
915
        <filter comment="Ignore OSGi API" id="1110441988">
916
<message_arguments>
916
            <message_arguments>
917
<message_argument value="org.osgi.framework.hooks.resolver.ResolverHookFactory"/>
917
                <message_argument value="org.osgi.framework.hooks.resolver.ResolverHookFactory"/>
918
</message_arguments>
918
            </message_arguments>
919
</filter>
919
        </filter>
920
</resource>
920
    </resource>
921
<resource path="osgi/src/org/osgi/framework/hooks/service/EventListenerHook.java" type="org.osgi.framework.hooks.service.EventListenerHook">
921
    <resource path="osgi/src/org/osgi/framework/hooks/service/EventListenerHook.java" type="org.osgi.framework.hooks.service.EventListenerHook">
922
<filter comment="Ignore OSGi API" id="1108344834">
922
        <filter comment="Ignore OSGi API" id="1108344834">
923
<message_arguments>
923
            <message_arguments>
924
<message_argument value="1.1"/>
924
                <message_argument value="1.1"/>
925
<message_argument value="3.7"/>
925
                <message_argument value="3.7"/>
926
<message_argument value="org.osgi.framework.hooks.service.EventListenerHook"/>
926
                <message_argument value="org.osgi.framework.hooks.service.EventListenerHook"/>
927
</message_arguments>
927
            </message_arguments>
928
</filter>
928
        </filter>
929
</resource>
929
    </resource>
930
<resource path="osgi/src/org/osgi/framework/hooks/service/ListenerHook.java" type="org.osgi.framework.hooks.service.ListenerHook$ListenerInfo">
930
    <resource path="osgi/src/org/osgi/framework/hooks/service/ListenerHook.java" type="org.osgi.framework.hooks.service.ListenerHook$ListenerInfo">
931
<filter comment="Ignore OSGi APIs" id="403853384">
931
        <filter comment="Ignore OSGi APIs" id="403853384">
932
<message_arguments>
932
            <message_arguments>
933
<message_argument value="org.osgi.framework.hooks.service.ListenerHook.ListenerInfo"/>
933
                <message_argument value="org.osgi.framework.hooks.service.ListenerHook.ListenerInfo"/>
934
</message_arguments>
934
            </message_arguments>
935
</filter>
935
        </filter>
936
</resource>
936
    </resource>
937
<resource path="osgi/src/org/osgi/framework/hooks/weaving/WeavingException.java" type="org.osgi.framework.hooks.weaving.WeavingException">
937
    <resource path="osgi/src/org/osgi/framework/hooks/weaving/WeavingException.java" type="org.osgi.framework.hooks.weaving.WeavingException">
938
<filter comment="Ignore OSGi API" id="1110441988">
938
        <filter comment="Ignore OSGi API" id="1110441988">
939
<message_arguments>
939
            <message_arguments>
940
<message_argument value="org.osgi.framework.hooks.weaving.WeavingException"/>
940
                <message_argument value="org.osgi.framework.hooks.weaving.WeavingException"/>
941
</message_arguments>
941
            </message_arguments>
942
</filter>
942
        </filter>
943
</resource>
943
    </resource>
944
<resource path="osgi/src/org/osgi/framework/hooks/weaving/WeavingHook.java" type="org.osgi.framework.hooks.weaving.WeavingHook">
944
    <resource path="osgi/src/org/osgi/framework/hooks/weaving/WeavingHook.java" type="org.osgi.framework.hooks.weaving.WeavingHook">
945
<filter comment="Ignore OSGi API" id="1110441988">
945
        <filter comment="Ignore OSGi API" id="1110441988">
946
<message_arguments>
946
            <message_arguments>
947
<message_argument value="org.osgi.framework.hooks.weaving.WeavingHook"/>
947
                <message_argument value="org.osgi.framework.hooks.weaving.WeavingHook"/>
948
</message_arguments>
948
            </message_arguments>
949
</filter>
949
        </filter>
950
</resource>
950
    </resource>
951
<resource path="osgi/src/org/osgi/framework/hooks/weaving/WovenClass.java" type="org.osgi.framework.hooks.weaving.WovenClass">
951
    <resource path="osgi/src/org/osgi/framework/hooks/weaving/WovenClass.java" type="org.osgi.framework.hooks.weaving.WovenClass">
952
<filter comment="Ignore OSGi API" id="1110441988">
952
        <filter comment="Ignore OSGi API" id="1110441988">
953
<message_arguments>
953
            <message_arguments>
954
<message_argument value="org.osgi.framework.hooks.weaving.WovenClass"/>
954
                <message_argument value="org.osgi.framework.hooks.weaving.WovenClass"/>
955
</message_arguments>
955
            </message_arguments>
956
</filter>
956
        </filter>
957
</resource>
957
    </resource>
958
<resource path="osgi/src/org/osgi/framework/launch/Framework.java" type="org.osgi.framework.launch.Framework">
958
    <resource path="osgi/src/org/osgi/framework/launch/Framework.java" type="org.osgi.framework.launch.Framework">
959
<filter comment="Ignore OSGi API" id="403853384">
959
        <filter comment="Ignore OSGi API" id="403853384">
960
<message_arguments>
960
            <message_arguments>
961
<message_argument value="org.osgi.framework.launch.Framework"/>
961
                <message_argument value="org.osgi.framework.launch.Framework"/>
962
</message_arguments>
962
            </message_arguments>
963
</filter>
963
        </filter>
964
</resource>
964
    </resource>
965
<resource path="osgi/src/org/osgi/framework/launch/FrameworkFactory.java" type="org.osgi.framework.launch.FrameworkFactory">
965
    <resource path="osgi/src/org/osgi/framework/launch/FrameworkFactory.java" type="org.osgi.framework.launch.FrameworkFactory">
966
<filter comment="Ignore OSGi API" id="403853384">
966
        <filter comment="Ignore OSGi API" id="403853384">
967
<message_arguments>
967
            <message_arguments>
968
<message_argument value="org.osgi.framework.launch.FrameworkFactory"/>
968
                <message_argument value="org.osgi.framework.launch.FrameworkFactory"/>
969
</message_arguments>
969
            </message_arguments>
970
</filter>
970
        </filter>
971
</resource>
971
    </resource>
972
<resource path="osgi/src/org/osgi/framework/startlevel/BundleStartLevel.java" type="org.osgi.framework.startlevel.BundleStartLevel">
972
    <resource path="osgi/src/org/osgi/framework/startlevel/BundleStartLevel.java" type="org.osgi.framework.startlevel.BundleStartLevel">
973
<filter comment="Ignore OSGi API" id="1110441988">
973
        <filter comment="Ignore OSGi API" id="1110441988">
974
<message_arguments>
974
            <message_arguments>
975
<message_argument value="org.osgi.framework.startlevel.BundleStartLevel"/>
975
                <message_argument value="org.osgi.framework.startlevel.BundleStartLevel"/>
976
</message_arguments>
976
            </message_arguments>
977
</filter>
977
        </filter>
978
</resource>
978
    </resource>
979
<resource path="osgi/src/org/osgi/framework/startlevel/FrameworkStartLevel.java" type="org.osgi.framework.startlevel.FrameworkStartLevel">
979
    <resource path="osgi/src/org/osgi/framework/startlevel/FrameworkStartLevel.java" type="org.osgi.framework.startlevel.FrameworkStartLevel">
980
<filter comment="Ignore OSGi API" id="1110441988">
980
        <filter comment="Ignore OSGi API" id="1110441988">
981
<message_arguments>
981
            <message_arguments>
982
<message_argument value="org.osgi.framework.startlevel.FrameworkStartLevel"/>
982
                <message_argument value="org.osgi.framework.startlevel.FrameworkStartLevel"/>
983
</message_arguments>
983
            </message_arguments>
984
</filter>
984
        </filter>
985
</resource>
985
    </resource>
986
<resource path="osgi/src/org/osgi/framework/wiring/BundleCapability.java" type="org.osgi.framework.wiring.BundleCapability">
986
    <resource path="osgi/src/org/osgi/framework/wiring/BundleCapability.java" type="org.osgi.framework.wiring.BundleCapability">
987
<filter comment="Ignore OSGi API" id="1110441988">
987
        <filter comment="Ignore OSGi API" id="1110441988">
988
<message_arguments>
988
            <message_arguments>
989
<message_argument value="org.osgi.framework.wiring.BundleCapability"/>
989
                <message_argument value="org.osgi.framework.wiring.BundleCapability"/>
990
</message_arguments>
990
            </message_arguments>
991
</filter>
991
        </filter>
992
</resource>
992
    </resource>
993
<resource path="osgi/src/org/osgi/framework/wiring/BundleRequirement.java" type="org.osgi.framework.wiring.BundleRequirement">
993
    <resource path="osgi/src/org/osgi/framework/wiring/BundleRequirement.java" type="org.osgi.framework.wiring.BundleRequirement">
994
<filter comment="Ignore OSGi API" id="1110441988">
994
        <filter comment="Ignore OSGi API" id="1110441988">
995
<message_arguments>
995
            <message_arguments>
996
<message_argument value="org.osgi.framework.wiring.BundleRequirement"/>
996
                <message_argument value="org.osgi.framework.wiring.BundleRequirement"/>
997
</message_arguments>
997
            </message_arguments>
998
</filter>
998
        </filter>
999
</resource>
999
    </resource>
1000
<resource path="osgi/src/org/osgi/framework/wiring/BundleRevision.java" type="org.osgi.framework.wiring.BundleRevision">
1000
    <resource path="osgi/src/org/osgi/framework/wiring/BundleRevision.java" type="org.osgi.framework.wiring.BundleRevision">
1001
<filter comment="Ignore OSGi API" id="1110441988">
1001
        <filter comment="Ignore OSGi API" id="1110441988">
1002
<message_arguments>
1002
            <message_arguments>
1003
<message_argument value="org.osgi.framework.wiring.BundleRevision"/>
1003
                <message_argument value="org.osgi.framework.wiring.BundleRevision"/>
1004
</message_arguments>
1004
            </message_arguments>
1005
</filter>
1005
        </filter>
1006
</resource>
1006
    </resource>
1007
<resource path="osgi/src/org/osgi/framework/wiring/BundleRevisions.java" type="org.osgi.framework.wiring.BundleRevisions">
1007
    <resource path="osgi/src/org/osgi/framework/wiring/BundleRevisions.java" type="org.osgi.framework.wiring.BundleRevisions">
1008
<filter comment="Ignore OSGi API" id="1110441988">
1008
        <filter comment="Ignore OSGi API" id="1110441988">
1009
<message_arguments>
1009
            <message_arguments>
1010
<message_argument value="org.osgi.framework.wiring.BundleRevisions"/>
1010
                <message_argument value="org.osgi.framework.wiring.BundleRevisions"/>
1011
</message_arguments>
1011
            </message_arguments>
1012
</filter>
1012
        </filter>
1013
</resource>
1013
    </resource>
1014
<resource path="osgi/src/org/osgi/framework/wiring/BundleWire.java" type="org.osgi.framework.wiring.BundleWire">
1014
    <resource path="osgi/src/org/osgi/framework/wiring/BundleWire.java" type="org.osgi.framework.wiring.BundleWire">
1015
<filter comment="Ignore OSGi API" id="1110441988">
1015
        <filter comment="Ignore OSGi API" id="1110441988">
1016
<message_arguments>
1016
            <message_arguments>
1017
<message_argument value="org.osgi.framework.wiring.BundleWire"/>
1017
                <message_argument value="org.osgi.framework.wiring.BundleWire"/>
1018
</message_arguments>
1018
            </message_arguments>
1019
</filter>
1019
        </filter>
1020
</resource>
1020
    </resource>
1021
<resource path="osgi/src/org/osgi/framework/wiring/BundleWiring.java" type="org.osgi.framework.wiring.BundleWiring">
1021
    <resource path="osgi/src/org/osgi/framework/wiring/BundleWiring.java" type="org.osgi.framework.wiring.BundleWiring">
1022
<filter comment="Ignore OSGi API" id="1110441988">
1022
        <filter comment="Ignore OSGi API" id="1110441988">
1023
<message_arguments>
1023
            <message_arguments>
1024
<message_argument value="org.osgi.framework.wiring.BundleWiring"/>
1024
                <message_argument value="org.osgi.framework.wiring.BundleWiring"/>
1025
</message_arguments>
1025
            </message_arguments>
1026
</filter>
1026
        </filter>
1027
</resource>
1027
    </resource>
1028
<resource path="osgi/src/org/osgi/framework/wiring/FrameworkWiring.java" type="org.osgi.framework.wiring.FrameworkWiring">
1028
    <resource path="osgi/src/org/osgi/framework/wiring/Capability.java" type="org.osgi.framework.wiring.Capability">
1029
<filter comment="Ignore OSGi API" id="1110441988">
1029
        <filter id="1110441988">
1030
<message_arguments>
1030
            <message_arguments>
1031
<message_argument value="org.osgi.framework.wiring.FrameworkWiring"/>
1031
                <message_argument value="org.osgi.framework.wiring.Capability"/>
1032
</message_arguments>
1032
            </message_arguments>
1033
</filter>
1033
        </filter>
1034
</resource>
1034
    </resource>
1035
<resource path="osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionAdmin.java" type="org.osgi.service.condpermadmin.ConditionalPermissionAdmin">
1035
    <resource path="osgi/src/org/osgi/framework/wiring/FrameworkWiring.java" type="org.osgi.framework.wiring.FrameworkWiring">
1036
<filter comment="Ignore OSGi API" id="403853384">
1036
        <filter comment="Ignore OSGi API" id="1110441988">
1037
<message_arguments>
1037
            <message_arguments>
1038
<message_argument value="org.osgi.service.condpermadmin.ConditionalPermissionAdmin"/>
1038
                <message_argument value="org.osgi.framework.wiring.FrameworkWiring"/>
1039
</message_arguments>
1039
            </message_arguments>
1040
</filter>
1040
        </filter>
1041
</resource>
1041
    </resource>
1042
<resource path="osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionInfo.java" type="org.osgi.service.condpermadmin.ConditionalPermissionInfo">
1042
    <resource path="osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionAdmin.java" type="org.osgi.service.condpermadmin.ConditionalPermissionAdmin">
1043
<filter comment="Ignore OSGi API" id="403853384">
1043
        <filter comment="Ignore OSGi API" id="403853384">
1044
<message_arguments>
1044
            <message_arguments>
1045
<message_argument value="org.osgi.service.condpermadmin.ConditionalPermissionInfo"/>
1045
                <message_argument value="org.osgi.service.condpermadmin.ConditionalPermissionAdmin"/>
1046
</message_arguments>
1046
            </message_arguments>
1047
</filter>
1047
        </filter>
1048
</resource>
1048
    </resource>
1049
<resource path="osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionUpdate.java" type="org.osgi.service.condpermadmin.ConditionalPermissionUpdate">
1049
    <resource path="osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionInfo.java" type="org.osgi.service.condpermadmin.ConditionalPermissionInfo">
1050
<filter comment="Ignore OSGi API" id="403853384">
1050
        <filter comment="Ignore OSGi API" id="403853384">
1051
<message_arguments>
1051
            <message_arguments>
1052
<message_argument value="org.osgi.service.condpermadmin.ConditionalPermissionUpdate"/>
1052
                <message_argument value="org.osgi.service.condpermadmin.ConditionalPermissionInfo"/>
1053
</message_arguments>
1053
            </message_arguments>
1054
</filter>
1054
        </filter>
1055
</resource>
1055
    </resource>
1056
<resource path="osgi/src/org/osgi/service/log/LogEntry.java" type="org.osgi.service.log.LogEntry">
1056
    <resource path="osgi/src/org/osgi/service/condpermadmin/ConditionalPermissionUpdate.java" type="org.osgi.service.condpermadmin.ConditionalPermissionUpdate">
1057
<filter comment="Ingore OSGi API" id="1110441988">
1057
        <filter comment="Ignore OSGi API" id="403853384">
1058
<message_arguments>
1058
            <message_arguments>
1059
<message_argument value="org.osgi.service.log.LogEntry"/>
1059
                <message_argument value="org.osgi.service.condpermadmin.ConditionalPermissionUpdate"/>
1060
</message_arguments>
1060
            </message_arguments>
1061
</filter>
1061
        </filter>
1062
</resource>
1062
    </resource>
1063
<resource path="osgi/src/org/osgi/service/log/LogListener.java" type="org.osgi.service.log.LogListener">
1063
    <resource path="osgi/src/org/osgi/service/log/LogEntry.java" type="org.osgi.service.log.LogEntry">
1064
<filter comment="Ingore OSGi API" id="1110441988">
1064
        <filter comment="Ingore OSGi API" id="1110441988">
1065
<message_arguments>
1065
            <message_arguments>
1066
<message_argument value="org.osgi.service.log.LogListener"/>
1066
                <message_argument value="org.osgi.service.log.LogEntry"/>
1067
</message_arguments>
1067
            </message_arguments>
1068
</filter>
1068
        </filter>
1069
</resource>
1069
    </resource>
1070
<resource path="osgi/src/org/osgi/service/log/LogReaderService.java" type="org.osgi.service.log.LogReaderService">
1070
    <resource path="osgi/src/org/osgi/service/log/LogListener.java" type="org.osgi.service.log.LogListener">
1071
<filter comment="Ingore OSGi API" id="1110441988">
1071
        <filter comment="Ingore OSGi API" id="1110441988">
1072
<message_arguments>
1072
            <message_arguments>
1073
<message_argument value="org.osgi.service.log.LogReaderService"/>
1073
                <message_argument value="org.osgi.service.log.LogListener"/>
1074
</message_arguments>
1074
            </message_arguments>
1075
</filter>
1075
        </filter>
1076
</resource>
1076
    </resource>
1077
<resource path="osgi/src/org/osgi/service/log/LogService.java" type="org.osgi.service.log.LogService">
1077
    <resource path="osgi/src/org/osgi/service/log/LogReaderService.java" type="org.osgi.service.log.LogReaderService">
1078
<filter comment="Ingore OSGi API" id="1110441988">
1078
        <filter comment="Ingore OSGi API" id="1110441988">
1079
<message_arguments>
1079
            <message_arguments>
1080
<message_argument value="org.osgi.service.log.LogService"/>
1080
                <message_argument value="org.osgi.service.log.LogReaderService"/>
1081
</message_arguments>
1081
            </message_arguments>
1082
</filter>
1082
        </filter>
1083
</resource>
1083
    </resource>
1084
<resource path="osgi/src/org/osgi/service/packageadmin/ExportedPackage.java" type="org.osgi.service.packageadmin.ExportedPackage">
1084
    <resource path="osgi/src/org/osgi/service/log/LogService.java" type="org.osgi.service.log.LogService">
1085
<filter comment="Ignore OSGi API" id="403853384">
1085
        <filter comment="Ingore OSGi API" id="1110441988">
1086
<message_arguments>
1086
            <message_arguments>
1087
<message_argument value="org.osgi.service.packageadmin.ExportedPackage"/>
1087
                <message_argument value="org.osgi.service.log.LogService"/>
1088
</message_arguments>
1088
            </message_arguments>
1089
</filter>
1089
        </filter>
1090
</resource>
1090
    </resource>
1091
<resource path="osgi/src/org/osgi/service/packageadmin/PackageAdmin.java" type="org.osgi.service.packageadmin.PackageAdmin">
1091
    <resource path="osgi/src/org/osgi/service/packageadmin/ExportedPackage.java" type="org.osgi.service.packageadmin.ExportedPackage">
1092
<filter comment="Ignore OSGi API" id="403853384">
1092
        <filter comment="Ignore OSGi API" id="403853384">
1093
<message_arguments>
1093
            <message_arguments>
1094
<message_argument value="org.osgi.service.packageadmin.PackageAdmin"/>
1094
                <message_argument value="org.osgi.service.packageadmin.ExportedPackage"/>
1095
</message_arguments>
1095
            </message_arguments>
1096
</filter>
1096
        </filter>
1097
</resource>
1097
    </resource>
1098
<resource path="osgi/src/org/osgi/service/packageadmin/RequiredBundle.java" type="org.osgi.service.packageadmin.RequiredBundle">
1098
    <resource path="osgi/src/org/osgi/service/packageadmin/PackageAdmin.java" type="org.osgi.service.packageadmin.PackageAdmin">
1099
<filter comment="Ignore OSGi API" id="403853384">
1099
        <filter comment="Ignore OSGi API" id="403853384">
1100
<message_arguments>
1100
            <message_arguments>
1101
<message_argument value="org.osgi.service.packageadmin.RequiredBundle"/>
1101
                <message_argument value="org.osgi.service.packageadmin.PackageAdmin"/>
1102
</message_arguments>
1102
            </message_arguments>
1103
</filter>
1103
        </filter>
1104
</resource>
1104
    </resource>
1105
<resource path="osgi/src/org/osgi/service/permissionadmin/PermissionAdmin.java" type="org.osgi.service.permissionadmin.PermissionAdmin">
1105
    <resource path="osgi/src/org/osgi/service/packageadmin/RequiredBundle.java" type="org.osgi.service.packageadmin.RequiredBundle">
1106
<filter comment="Ignore OSGi API" id="403853384">
1106
        <filter comment="Ignore OSGi API" id="403853384">
1107
<message_arguments>
1107
            <message_arguments>
1108
<message_argument value="org.osgi.service.permissionadmin.PermissionAdmin"/>
1108
                <message_argument value="org.osgi.service.packageadmin.RequiredBundle"/>
1109
</message_arguments>
1109
            </message_arguments>
1110
</filter>
1110
        </filter>
1111
</resource>
1111
    </resource>
1112
<resource path="osgi/src/org/osgi/service/startlevel/StartLevel.java" type="org.osgi.service.startlevel.StartLevel">
1112
    <resource path="osgi/src/org/osgi/service/permissionadmin/PermissionAdmin.java" type="org.osgi.service.permissionadmin.PermissionAdmin">
1113
<filter comment="Ignore OSGi API" id="403853384">
1113
        <filter comment="Ignore OSGi API" id="403853384">
1114
<message_arguments>
1114
            <message_arguments>
1115
<message_argument value="org.osgi.service.startlevel.StartLevel"/>
1115
                <message_argument value="org.osgi.service.permissionadmin.PermissionAdmin"/>
1116
</message_arguments>
1116
            </message_arguments>
1117
</filter>
1117
        </filter>
1118
</resource>
1118
    </resource>
1119
<resource path="osgi/src/org/osgi/service/url/URLConstants.java" type="org.osgi.service.url.URLConstants">
1119
    <resource path="osgi/src/org/osgi/service/startlevel/StartLevel.java" type="org.osgi.service.startlevel.StartLevel">
1120
<filter comment="Ignore OSGi API" id="403853384">
1120
        <filter comment="Ignore OSGi API" id="403853384">
1121
<message_arguments>
1121
            <message_arguments>
1122
<message_argument value="org.osgi.service.url.URLConstants"/>
1122
                <message_argument value="org.osgi.service.startlevel.StartLevel"/>
1123
</message_arguments>
1123
            </message_arguments>
1124
</filter>
1124
        </filter>
1125
</resource>
1125
    </resource>
1126
<resource path="osgi/src/org/osgi/util/tracker/BundleTracker.java" type="org.osgi.util.tracker.BundleTracker">
1126
    <resource path="osgi/src/org/osgi/service/url/URLConstants.java" type="org.osgi.service.url.URLConstants">
1127
<filter id="1141899266">
1127
        <filter comment="Ignore OSGi API" id="403853384">
1128
<message_arguments>
1128
            <message_arguments>
1129
<message_argument value="1.5"/>
1129
                <message_argument value="org.osgi.service.url.URLConstants"/>
1130
<message_argument value="3.7"/>
1130
            </message_arguments>
1131
<message_argument value="getTracked()"/>
1131
        </filter>
1132
</message_arguments>
1132
    </resource>
1133
</filter>
1133
    <resource path="osgi/src/org/osgi/util/tracker/BundleTracker.java" type="org.osgi.util.tracker.BundleTracker">
1134
<filter comment="Ignore OSGi API" id="1141899266">
1134
        <filter id="1141899266">
1135
<message_arguments>
1135
            <message_arguments>
1136
<message_argument value="1.5"/>
1136
                <message_argument value="1.5"/>
1137
<message_argument value="3.7"/>
1137
                <message_argument value="3.7"/>
1138
<message_argument value="isEmpty()"/>
1138
                <message_argument value="getTracked()"/>
1139
</message_arguments>
1139
            </message_arguments>
1140
</filter>
1140
        </filter>
1141
</resource>
1141
        <filter comment="Ignore OSGi API" id="1141899266">
1142
<resource path="osgi/src/org/osgi/util/tracker/ServiceTracker.java" type="org.osgi.util.tracker.ServiceTracker">
1142
            <message_arguments>
1143
<filter comment="Ignore OSGi API" id="1141899266">
1143
                <message_argument value="1.5"/>
1144
<message_arguments>
1144
                <message_argument value="3.7"/>
1145
<message_argument value="1.5"/>
1145
                <message_argument value="isEmpty()"/>
1146
<message_argument value="3.7"/>
1146
            </message_arguments>
1147
<message_argument value="getServices(T[])"/>
1147
        </filter>
1148
</message_arguments>
1148
    </resource>
1149
</filter>
1149
    <resource path="osgi/src/org/osgi/util/tracker/ServiceTracker.java" type="org.osgi.util.tracker.ServiceTracker">
1150
<filter id="1141899266">
1150
        <filter comment="Ignore OSGi API" id="1141899266">
1151
<message_arguments>
1151
            <message_arguments>
1152
<message_argument value="1.5"/>
1152
                <message_argument value="1.5"/>
1153
<message_argument value="3.7"/>
1153
                <message_argument value="3.7"/>
1154
<message_argument value="getTracked()"/>
1154
                <message_argument value="getServices(T[])"/>
1155
</message_arguments>
1155
            </message_arguments>
1156
</filter>
1156
        </filter>
1157
<filter comment="Ignore OSGi API" id="1141899266">
1157
        <filter id="1141899266">
1158
<message_arguments>
1158
            <message_arguments>
1159
<message_argument value="1.5"/>
1159
                <message_argument value="1.5"/>
1160
<message_argument value="3.7"/>
1160
                <message_argument value="3.7"/>
1161
<message_argument value="isEmpty()"/>
1161
                <message_argument value="getTracked()"/>
1162
</message_arguments>
1162
            </message_arguments>
1163
</filter>
1163
        </filter>
1164
<filter id="1143996420">
1164
        <filter comment="Ignore OSGi API" id="1141899266">
1165
<message_arguments>
1165
            <message_arguments>
1166
<message_argument value="ServiceTracker(BundleContext, Class&lt;S&gt;, ServiceTrackerCustomizer&lt;S,T&gt;)"/>
1166
                <message_argument value="1.5"/>
1167
</message_arguments>
1167
                <message_argument value="3.7"/>
1168
</filter>
1168
                <message_argument value="isEmpty()"/>
1169
</resource>
1169
            </message_arguments>
1170
<resource path="supplement/src/org/eclipse/core/runtime/internal/adaptor/Locker_JavaNio.java" type="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio">
1170
        </filter>
1171
<filter comment="Code is protected when running on a limited environment" id="630194212">
1171
        <filter id="1143996420">
1172
<message_arguments>
1172
            <message_arguments>
1173
<message_argument value="Locker_JavaNio.fileLock"/>
1173
                <message_argument value="ServiceTracker(BundleContext, Class&lt;S&gt;, ServiceTrackerCustomizer&lt;S,T&gt;)"/>
1174
<message_argument value="FileLock"/>
1174
            </message_arguments>
1175
<message_argument value="OSGi/Minimum-1.2"/>
1175
        </filter>
1176
</message_arguments>
1176
    </resource>
1177
</filter>
1177
    <resource path="supplement/src/org/eclipse/core/runtime/internal/adaptor/Locker_JavaNio.java" type="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio">
1178
<filter comment="Code is protected when running on a limited environment" id="646971428">
1178
        <filter comment="Code is protected when running on a limited environment" id="630194212">
1179
<message_arguments>
1179
            <message_arguments>
1180
<message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.isLocked()"/>
1180
                <message_argument value="Locker_JavaNio.fileLock"/>
1181
<message_argument value="FileLock"/>
1181
                <message_argument value="FileLock"/>
1182
<message_argument value="OSGi/Minimum-1.2"/>
1182
                <message_argument value="OSGi/Minimum-1.2"/>
1183
</message_arguments>
1183
            </message_arguments>
1184
</filter>
1184
        </filter>
1185
<filter comment="Code is protected when running on a limited environment" id="646971428">
1185
        <filter comment="Code is protected when running on a limited environment" id="646971428">
1186
<message_arguments>
1186
            <message_arguments>
1187
<message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.isLocked()"/>
1187
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.isLocked()"/>
1188
<message_argument value="OverlappingFileLockException"/>
1188
                <message_argument value="FileLock"/>
1189
<message_argument value="OSGi/Minimum-1.2"/>
1189
                <message_argument value="OSGi/Minimum-1.2"/>
1190
</message_arguments>
1190
            </message_arguments>
1191
</filter>
1191
        </filter>
1192
<filter comment="Code is protected when running on a limited environment" id="646971428">
1192
        <filter comment="Code is protected when running on a limited environment" id="646971428">
1193
<message_arguments>
1193
            <message_arguments>
1194
<message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.lock()"/>
1194
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.isLocked()"/>
1195
<message_argument value="OverlappingFileLockException"/>
1195
                <message_argument value="OverlappingFileLockException"/>
1196
<message_argument value="OSGi/Minimum-1.2"/>
1196
                <message_argument value="OSGi/Minimum-1.2"/>
1197
</message_arguments>
1197
            </message_arguments>
1198
</filter>
1198
        </filter>
1199
<filter comment="Code is protected when running on a limited environment" id="647004193">
1199
        <filter comment="Code is protected when running on a limited environment" id="646971428">
1200
<message_arguments>
1200
            <message_arguments>
1201
<message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.isLocked()"/>
1201
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.lock()"/>
1202
<message_argument value="FileChannel"/>
1202
                <message_argument value="OverlappingFileLockException"/>
1203
<message_argument value="tryLock(long, long, boolean)"/>
1203
                <message_argument value="OSGi/Minimum-1.2"/>
1204
<message_argument value="OSGi/Minimum-1.2"/>
1204
            </message_arguments>
1205
</message_arguments>
1205
        </filter>
1206
</filter>
1206
        <filter comment="Code is protected when running on a limited environment" id="647004193">
1207
<filter comment="Code is protected when running on a limited environment" id="647004193">
1207
            <message_arguments>
1208
<message_arguments>
1208
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.isLocked()"/>
1209
<message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.isLocked()"/>
1209
                <message_argument value="FileChannel"/>
1210
<message_argument value="FileLock"/>
1210
                <message_argument value="tryLock(long, long, boolean)"/>
1211
<message_argument value="release()"/>
1211
                <message_argument value="OSGi/Minimum-1.2"/>
1212
<message_argument value="OSGi/Minimum-1.2"/>
1212
            </message_arguments>
1213
</message_arguments>
1213
        </filter>
1214
</filter>
1214
        <filter comment="Code is protected when running on a limited environment" id="647004193">
1215
<filter comment="Code is protected when running on a limited environment" id="647004193">
1215
            <message_arguments>
1216
<message_arguments>
1216
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.isLocked()"/>
1217
<message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.isLocked()"/>
1217
                <message_argument value="FileLock"/>
1218
<message_argument value="RandomAccessFile"/>
1218
                <message_argument value="release()"/>
1219
<message_argument value="getChannel()"/>
1219
                <message_argument value="OSGi/Minimum-1.2"/>
1220
<message_argument value="OSGi/Minimum-1.2"/>
1220
            </message_arguments>
1221
</message_arguments>
1221
        </filter>
1222
</filter>
1222
        <filter comment="Code is protected when running on a limited environment" id="647004193">
1223
<filter comment="Code is protected when running on a limited environment" id="647004193">
1223
            <message_arguments>
1224
<message_arguments>
1224
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.isLocked()"/>
1225
<message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.lock()"/>
1225
                <message_argument value="RandomAccessFile"/>
1226
<message_argument value="FileChannel"/>
1226
                <message_argument value="getChannel()"/>
1227
<message_argument value="tryLock(long, long, boolean)"/>
1227
                <message_argument value="OSGi/Minimum-1.2"/>
1228
<message_argument value="OSGi/Minimum-1.2"/>
1228
            </message_arguments>
1229
</message_arguments>
1229
        </filter>
1230
</filter>
1230
        <filter comment="Code is protected when running on a limited environment" id="647004193">
1231
<filter comment="Code is protected when running on a limited environment" id="647004193">
1231
            <message_arguments>
1232
<message_arguments>
1232
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.lock()"/>
1233
<message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.lock()"/>
1233
                <message_argument value="FileChannel"/>
1234
<message_argument value="RandomAccessFile"/>
1234
                <message_argument value="tryLock(long, long, boolean)"/>
1235
<message_argument value="getChannel()"/>
1235
                <message_argument value="OSGi/Minimum-1.2"/>
1236
<message_argument value="OSGi/Minimum-1.2"/>
1236
            </message_arguments>
1237
</message_arguments>
1237
        </filter>
1238
</filter>
1238
        <filter comment="Code is protected when running on a limited environment" id="647004193">
1239
<filter comment="Code is protected when running on a limited environment" id="647004193">
1239
            <message_arguments>
1240
<message_arguments>
1240
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.lock()"/>
1241
<message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.release()"/>
1241
                <message_argument value="RandomAccessFile"/>
1242
<message_argument value="FileLock"/>
1242
                <message_argument value="getChannel()"/>
1243
<message_argument value="release()"/>
1243
                <message_argument value="OSGi/Minimum-1.2"/>
1244
<message_argument value="OSGi/Minimum-1.2"/>
1244
            </message_arguments>
1245
</message_arguments>
1245
        </filter>
1246
</filter>
1246
        <filter comment="Code is protected when running on a limited environment" id="647004193">
1247
</resource>
1247
            <message_arguments>
1248
                <message_argument value="org.eclipse.core.runtime.internal.adaptor.Locker_JavaNio.release()"/>
1249
                <message_argument value="FileLock"/>
1250
                <message_argument value="release()"/>
1251
                <message_argument value="OSGi/Minimum-1.2"/>
1252
            </message_arguments>
1253
        </filter>
1254
    </resource>
1248
</component>
1255
</component>
(-)osgi/src/org/osgi/framework/wiring/BundleCapability.java (-2 / +5 lines)
Lines 18-32 Link Here
18
18
19
import java.util.Map;
19
import java.util.Map;
20
20
21
21
/**
22
/**
22
 * A capability that has been declared from a {@link BundleRevision bundle
23
 * A capability that has been declared from a {@link BundleRevision bundle
23
 * revision}.
24
 * revision}.
24
 * 
25
 * 
25
 * @ThreadSafe
26
 * @ThreadSafe
26
 * @noimplement
27
 * @noimplement
27
 * @version $Id: 0fde13c3228af1aa97872b37ccf0aa6e23123b11 $
28
 * @version $Id: 6bbc1e645f927531d40fb245c95f5d26ad189db3 $
28
 */
29
 */
29
public interface BundleCapability {
30
public interface BundleCapability extends Capability{
30
	/**
31
	/**
31
	 * Returns the name space of this capability.
32
	 * Returns the name space of this capability.
32
	 * 
33
	 * 
Lines 58-61 Link Here
58
	 * @return The bundle revision declaring this capability.
59
	 * @return The bundle revision declaring this capability.
59
	 */
60
	 */
60
	BundleRevision getRevision();
61
	BundleRevision getRevision();
62
63
	BundleRevision getResource();
61
}
64
}
(-)osgi/src/org/osgi/framework/wiring/BundleRequirement.java (-2 / +8 lines)
Lines 18-32 Link Here
18
18
19
import java.util.Map;
19
import java.util.Map;
20
20
21
21
/**
22
/**
22
 * A requirement that has been declared from a {@link BundleRevision bundle
23
 * A requirement that has been declared from a {@link BundleRevision bundle
23
 * revision}.
24
 * revision}.
24
 * 
25
 * 
25
 * @ThreadSafe
26
 * @ThreadSafe
26
 * @noimplement
27
 * @noimplement
27
 * @version $Id: 659132c1fac7526240df377ead0e1bc8d4af2e77 $
28
 * @version $Id: 3ee254a3c0d5516b56affaa66544c892f3d522cb $
28
 */
29
 */
29
public interface BundleRequirement {
30
public interface BundleRequirement extends Requirement{
30
	/**
31
	/**
31
	 * Returns the name space of this requirement.
32
	 * Returns the name space of this requirement.
32
	 * 
33
	 * 
Lines 60-65 Link Here
60
	BundleRevision getRevision();
61
	BundleRevision getRevision();
61
62
62
	/**
63
	/**
64
	 * {@inheritDoc}
65
	 */
66
	BundleRevision getResource();
67
68
	/**
63
	 * Returns whether the specified capability matches this requirement.
69
	 * Returns whether the specified capability matches this requirement.
64
	 * 
70
	 * 
65
	 * @param capability The capability to match to this requirement.
71
	 * @param capability The capability to match to this requirement.
(-)osgi/src/org/osgi/framework/wiring/BundleRevision.java (-5 / +5 lines)
Lines 47-55 Link Here
47
 * 
47
 * 
48
 * @ThreadSafe
48
 * @ThreadSafe
49
 * @noimplement
49
 * @noimplement
50
 * @version $Id: 139b3046ebd46c48b03dda8d36f2f9d79e2e616d $
50
 * @version $Id: 2eb450f15fc9d4fe1b611dc55e2238b972b4c486 $
51
 */
51
 */
52
public interface BundleRevision extends BundleReference {
52
public interface BundleRevision extends BundleReference, Resource {
53
	/**
53
	/**
54
	 * Returns the symbolic name for this bundle revision.
54
	 * Returns the symbolic name for this bundle revision.
55
	 * 
55
	 * 
Lines 137-143 Link Here
137
	 * package wires required by a bundle wiring may change as the bundle wiring
137
	 * package wires required by a bundle wiring may change as the bundle wiring
138
	 * may dynamically import additional packages.
138
	 * may dynamically import additional packages.
139
	 */
139
	 */
140
	String	PACKAGE_NAMESPACE	= "osgi.wiring.package";
140
	String	PACKAGE_NAMESPACE	= ResourceConstants.WIRING_PACKAGE_NAMESPACE;
141
141
142
	/**
142
	/**
143
	 * Name space for bundle capabilities and requirements.
143
	 * Name space for bundle capabilities and requirements.
Lines 175-181 Link Here
175
	 * {@link Constants#BUNDLE_MANIFESTVERSION Bundle-ManifestVersion}
175
	 * {@link Constants#BUNDLE_MANIFESTVERSION Bundle-ManifestVersion}
176
	 * {@literal <} 2) must not provide a bundle capability.
176
	 * {@literal <} 2) must not provide a bundle capability.
177
	 */
177
	 */
178
	String	BUNDLE_NAMESPACE	= "osgi.wiring.bundle";
178
	String	BUNDLE_NAMESPACE	= ResourceConstants.WIRING_BUNDLE_NAMESPACE;
179
179
180
	/**
180
	/**
181
	 * Name space for host capabilities and requirements.
181
	 * Name space for host capabilities and requirements.
Lines 216-222 Link Here
216
	 * {@link Constants#BUNDLE_MANIFESTVERSION Bundle-ManifestVersion}
216
	 * {@link Constants#BUNDLE_MANIFESTVERSION Bundle-ManifestVersion}
217
	 * {@literal <} 2) must not provide a host capability.
217
	 * {@literal <} 2) must not provide a host capability.
218
	 */
218
	 */
219
	String	HOST_NAMESPACE		= "osgi.wiring.host";
219
	String	HOST_NAMESPACE		= ResourceConstants.WIRING_HOST_NAMESPACE;
220
220
221
	/**
221
	/**
222
	 * Returns the special types of this bundle revision. The bundle revision
222
	 * Returns the special types of this bundle revision. The bundle revision
(-)osgi/src/org/osgi/framework/wiring/BundleWire.java (-2 / +13 lines)
Lines 16-29 Link Here
16
16
17
package org.osgi.framework.wiring;
17
package org.osgi.framework.wiring;
18
18
19
19
/**
20
/**
20
 * A wire connecting a {@link BundleCapability} to a {@link BundleRequirement}.
21
 * A wire connecting a {@link BundleCapability} to a {@link BundleRequirement}.
21
 * 
22
 * 
22
 * @ThreadSafe
23
 * @ThreadSafe
23
 * @noimplement
24
 * @noimplement
24
 * @version $Id: 4f936a84065762ec3267a44f86ae01b0150e44ce $
25
 * @version $Id: aca8642cea91995d0b178129cba1131ed327c7e7 $
25
 */
26
 */
26
public interface BundleWire {
27
public interface BundleWire extends Wire {
27
	/**
28
	/**
28
	 * Returns the {@link BundleCapability} for this wire.
29
	 * Returns the {@link BundleCapability} for this wire.
29
	 * 
30
	 * 
Lines 69-72 Link Here
69
	 *         returned.
70
	 *         returned.
70
	 */
71
	 */
71
	BundleWiring getRequirerWiring();
72
	BundleWiring getRequirerWiring();
73
74
	/**
75
	 * {@inheritDoc}
76
	 */
77
	BundleRevision getProvider();
78
79
	/**
80
	 * {@inheritDoc}
81
	 */
82
	BundleRevision getRequirer();
72
}
83
}
(-)osgi/src/org/osgi/framework/wiring/Capability.java (+82 lines)
Added Link Here
1
/*
2
 * Copyright (c) OSGi Alliance (2010, 2011). All Rights Reserved.
3
 * 
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *      http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
17
package org.osgi.framework.wiring;
18
19
import java.util.Map;
20
21
/**
22
 * A capability that has been declared from a {@link Resource}.
23
 * 
24
 * @ThreadSafe
25
 * @version $Id: f8bd10002691537806e4bc3cf08f3fce37510121 $
26
 */
27
public interface Capability {
28
29
	/**
30
	 * Returns the name space of this capability.
31
	 * 
32
	 * @return The name space of this capability.
33
	 */
34
	String getNamespace();
35
36
	/**
37
	 * Returns the directives of this capability. Only the following list of
38
	 * directives have semantic meaning in the returned {@link Map map} of
39
	 * directives:
40
	 * <ul>
41
	 * <li> {@link ResourceConstants#CAPABILITY_EFFECTIVE_DIRECTIVE effective}
42
	 * <li> {@link ResourceConstants#CAPABILITY_USES_DIRECTIVE uses}
43
	 * <li> {@link ResourceConstants#CAPABILITY_MANDATORY_DIRECTIVE mandatory} -
44
	 * only recognized for the
45
	 * {@link ResourceConstants#WIRING_BUNDLE_NAMESPACE osgi.wiring.bundle} and
46
	 * {@link ResourceConstants#WIRING_PACKAGE_NAMESPACE osgi.wiring.package}
47
	 * name spaces.
48
	 * <li> {@link ResourceConstants#CAPABILITY_EXCLUDE_DIRECTIVE exclude} -
49
	 * only recognized for the
50
	 * {@link ResourceConstants#WIRING_PACKAGE_NAMESPACE osgi.wiring.package}
51
	 * name space.
52
	 * <li> {@link ResourceConstants#CAPABILITY_INCLUDE_DIRECTIVE include} -
53
	 * only recognized for the
54
	 * {@link ResourceConstants#WIRING_PACKAGE_NAMESPACE osgi.wiring.package}
55
	 * name space.
56
	 * </ul>
57
	 * All other directive are considered extra user defined information that
58
	 * has no semantic meaning. OSGi Alliance reserves the right to extend the
59
	 * set of directives which have semantic meaning.
60
	 * 
61
	 * @return An unmodifiable map of directive names to directive values for
62
	 *         this capability, or an empty map if this capability has no
63
	 *         directives.
64
	 */
65
	Map<String, String> getDirectives();
66
67
	/**
68
	 * Returns the attributes of this capability.
69
	 * 
70
	 * @return An unmodifiable map of attribute names to attribute values for
71
	 *         this capability, or an empty map if this capability has no
72
	 *         attributes.
73
	 */
74
	Map<String, Object> getAttributes();
75
76
	/**
77
	 * The resource that declares this capability.
78
	 * 
79
	 * @return the resource
80
	 */
81
	Resource getResource();
82
}
(-)osgi/src/org/osgi/framework/wiring/Requirement.java (+104 lines)
Added Link Here
1
/*
2
 * Copyright (c) OSGi Alliance (2010, 2011). All Rights Reserved.
3
 * 
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *      http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
17
package org.osgi.framework.wiring;
18
19
import java.util.Map;
20
21
import org.osgi.framework.Constants;
22
23
/**
24
 * A requirement that has been declared from a {@link Resource} .
25
 * 
26
 * @ThreadSafe
27
 * @version $Id: 6a5c3253e257d6f503a39d94563d7d656ce05e1d $
28
 */
29
public interface Requirement {
30
	/**
31
	 * Returns the name space of this requirement.
32
	 * 
33
	 * @return The name space of this requirement.
34
	 */
35
	String getNamespace();
36
37
	/**
38
	 * Returns the directives of this requirement. Only the following list of
39
	 * directives have semantic meaning in the returned {@link Map map} of
40
	 * directives:
41
	 * <ul>
42
	 * <li> {@link ResourceConstants#REQUIREMENT_EFFECTIVE_DIRECTIVE effective}
43
	 * <li> {@link ResourceConstants#REQUIREMENT_FILTER_DIRECTIVE filter}
44
	 * <li> {@link ResourceConstants#REQUIREMENT_CARDINALITY_DIRECTIVE
45
	 * cardinality}
46
	 * <li> {@link ResourceConstants#REQUIREMENT_RESOLUTION_DIRECTIVE resolution}
47
	 * <li> {@link ResourceConstants#REQUIREMENT_VISIBILITY_DIRECTIVE visibility}
48
	 * - only recognized for the
49
	 * {@link ResourceConstants#WIRING_BUNDLE_NAMESPACE osgi.wiring.bundle} name
50
	 * space.
51
	 * </ul>
52
	 * All other directive are considered extra user defined information that
53
	 * has no semantic meaning. OSGi Alliance reserves the right to extend the
54
	 * set of directives which have semantic meaning.
55
	 * 
56
	 * @return An unmodifiable map of directive names to directive values for
57
	 *         this requirement, or an empty map if this requirement has no
58
	 *         directives.
59
	 */
60
	Map<String, String> getDirectives();
61
62
	/**
63
	 * Returns the attributes of this requirement. Requirement attributes have
64
	 * no semantic meaning and are considered extra user defined information.
65
	 * 
66
	 * @return An unmodifiable map of attribute names to attribute values for
67
	 *         this requirement, or an empty map if this requirement has no
68
	 *         attributes.
69
	 */
70
	Map<String, Object> getAttributes();
71
72
	/**
73
	 * Returns the resource declaring this requirement.
74
	 * 
75
	 * @return The resource declaring this requirement.
76
	 */
77
	Resource getResource();
78
79
	/**
80
	 * Returns whether the specified capability matches this requirement. A
81
	 * capability matches this requirement when all of the following are true:
82
	 * <ul>
83
	 * <li>The specified capability has the same {@link #getNamespace() name
84
	 * space} as this requirement.
85
	 * <li>The filter specified by the {@link Constants#FILTER_DIRECTIVE filter}
86
	 * directive of this requirement matches the
87
	 * {@link Capability#getAttributes() attributes of the specified capability}.
88
	 * <li>The {@link #getDirectives() requirement directives} and the
89
	 * {@link Capability#getDirectives() capability directives} that apply to
90
	 * the name space are satisfied.
91
	 * </ul>
92
	 * 
93
	 * 
94
	 * @param capability
95
	 *            The capability to match to this requirement.
96
	 * @return {@code true} if the specified capability matches this this
97
	 *         requirement. {@link #getNamespace() name space} as this
98
	 *         requirement and the filter for this requirement matches the
99
	 *         {@link BundleCapability#getAttributes() attributes of the
100
	 *         specified capability}; {@code false} otherwise.
101
	 */
102
	// TODO much debate on the placement and need for this method.
103
	boolean matches(Capability capability);
104
}
(-)osgi/src/org/osgi/framework/wiring/Resource.java (+46 lines)
Added Link Here
1
package org.osgi.framework.wiring;
2
3
import java.util.List;
4
5
6
/**
7
 * A resource is the representation of a uniquely identified and typed data.
8
 * 
9
 * A resources can be wired together via capabilities and requirements.
10
 * 
11
 * TODO decide on identity characteristics of a revision. Given in OSGi multiple
12
 * bundles can be installed with same bsn/version this cannot be used as a key.
13
 * 
14
 * What then is identity of a resource? Object identity? URI (needs getter
15
 * method?)
16
 * 
17
 * @ThreadSafe
18
 * @version $Id: 0d09cf5655002b7b2f1d37d413788892ad2dfedf $
19
 */
20
public interface Resource {
21
	/**
22
	 * Returns the capabilities declared by this resource.
23
	 * 
24
	 * @param namespace
25
	 *            The name space of the declared capabilities to return or
26
	 *            {@code null} to return the declared capabilities from all name
27
	 *            spaces.
28
	 * @return A list containing a snapshot of the declared {@link Capability}s,
29
	 *         or an empty list if this resource declares no capabilities in the
30
	 *         specified name space.
31
	 */
32
	List<Capability> getCapabilities(String namespace);
33
34
	/**
35
	 * Returns the requirements declared by this bundle resource.
36
	 * 
37
	 * @param namespace
38
	 *            The name space of the declared requirements to return or
39
	 *            {@code null} to return the declared requirements from all name
40
	 *            spaces.
41
	 * @return A list containing a snapshot of the declared {@link Requirement}
42
	 *         s, or an empty list if this resource declares no requirements in
43
	 *         the specified name space.
44
	 */
45
	List<Requirement> getRequirements(String namespace);
46
}
(-)osgi/src/org/osgi/framework/wiring/ResourceConstants.java (+364 lines)
Added Link Here
1
/*
2
 * Copyright (c) OSGi Alliance (2011). All Rights Reserved.
3
 * 
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *      http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
package org.osgi.framework.wiring;
17
18
import org.osgi.framework.Constants;
19
import org.osgi.framework.Version;
20
21
/**
22
 * Defines standard names for the attributes, directives and name spaces for
23
 * resources, capabilities and requirements.
24
 * 
25
 * <p>
26
 * The values associated with these keys are of type {@code String}, unless
27
 * otherwise indicated.
28
 * 
29
 * @version $Id: 6a0df41f82a587eb72c0c513fdd0411f18564586 $
30
 */
31
public final class ResourceConstants {
32
33
	private ResourceConstants() {
34
		// keep others from creating objects of this type.
35
	}
36
37
	/**
38
	 * Name space for the identity capability.  Each {@link Resource resource} 
39
	 * should provide an identity capability that can be used to identify the
40
	 * resource.
41
	 * 
42
	 * For identity capability attributes the following applies:
43
	 * <ul>
44
	 * <li>The
45
	 * <q>osgi.identity</q> attribute contains the symbolic name of the
46
	 * resource.
47
	 * <li>The {@link #IDENTITY_VERSION_ATTRIBUTE version} attribute contains
48
	 * the {@link Version} of the resource.
49
	 * <li>The {@link #IDENTITY_TYPE_ATTRIBUTE type} attribute contains the
50
	 * resource type.
51
	 * </ul>
52
	 * <p>
53
	 * A resource with a symbolic name provides exactly one <sup>&#8224;</sup> identity
54
	 * {@link Resource#getCapabilities(String) capability}.
55
	 * <p>
56
	 * &#8224; A resource with no symbolic name must not provide an identity
57
	 * capability.
58
	 */
59
	public static final String IDENTITY_NAMESPACE = "osgi.identity";
60
61
	/**
62
	 * An {@link #IDENTITY_NAMESPACE identity} capability attribute identifying the
63
	 * {@link Version version} of the resource.  This attribute must be set to a value of
64
	 * type {@link Version}.  If the resource has no version then the value 
65
	 * {@link Version#emptyVersion 0.0.0} must be used for the attribute.
66
	 */
67
	public static final String IDENTITY_VERSION_ATTRIBUTE = Constants.VERSION_ATTRIBUTE;
68
69
	/**
70
	 * An {@link #IDENTITY_NAMESPACE identity} capability attribute identifying the
71
	 * resource type.  This attribute must be set to a value of type {@link String}.
72
	 * if the resource has no type then the value 
73
	 * {@link ResourceConstants#IDENTITY_TYPE_UNKNOWN unknown} must be used for the
74
	 * attribute.
75
	 */
76
	public static final String IDENTITY_TYPE_ATTRIBUTE = "type";
77
78
	/**
79
	 * An {@link #IDENTITY_NAMESPACE identity} capability {@link #IDENTITY_TYPE_ATTRIBUTE type}
80
	 * attribute value identifying the resource type as an OSGi bundle.
81
	 */
82
	public static final String IDENTITY_TYPE_BUNDLE = "osgi.bundle";
83
84
	/**
85
	 * An {@link #IDENTITY_NAMESPACE identity} capability {@link #IDENTITY_TYPE_ATTRIBUTE type}
86
	 * attribute value identifying the resource type as an OSGi fragment.
87
	 */
88
	public static final String IDENTITY_TYPE_FRAGMENT = "osgi.fragment";
89
90
	/**
91
	 * An {@link #IDENTITY_NAMESPACE identity} capability {@link #IDENTITY_TYPE_ATTRIBUTE type}
92
	 * attribute value identifying the resource type as unknown.
93
	 */
94
	public static final String IDENTITY_TYPE_UNKNOWN = "unknown";
95
96
	/**
97
	 * An {@link #IDENTITY_NAMESPACE identity} capability {@link Requirement#getDirectives() directive}
98
	 * identifying if the resource is a singleton.  A {@link String} value of &quot;true&quot; indicates
99
	 * the resource is a singleton; any other value or <code>null</code> indicates the resource is not a 
100
	 * singleton.
101
	 */
102
	public static final String IDENTITY_SINGLETON_DIRECTIVE = Constants.SINGLETON_DIRECTIVE;
103
104
	/**
105
	 * Name space for package capabilities and requirements.
106
	 * 
107
	 * For capability attributes the following applies:
108
	 * <ul>
109
	 * <li>The
110
	 * <q>osgi.wiring.package</q> attribute contains the name of the package.
111
	 * <li>The {@link Constants#VERSION_ATTRIBUTE version} attribute contains
112
	 * the the {@link Version} of the package if one is specified or
113
	 * {@link Version#emptyVersion} if not specified.
114
	 * <li>The {@link Constants#BUNDLE_SYMBOLICNAME_ATTRIBUTE
115
	 * bundle-symbolic-name} attribute contains the symbolic name of the
116
	 * resource providing the package if one is specified.
117
	 * <li>The {@link Constants#BUNDLE_VERSION_ATTRIBUTE bundle-version}
118
	 * attribute contains the {@link Version} of resource providing the package
119
	 * if one is specified or {@link Version#emptyVersion} if not specified.
120
	 * <li>All other attributes are of type {@link String} and are used as
121
	 * arbitrary matching attributes for the capability.
122
	 * </ul>
123
	 * <p>
124
	 * A resource provides zero or more package
125
	 * {@link Resource#getCapabilities(String) capabilities} (this is, exported
126
	 * packages) and requires zero or more package
127
	 * {@link Resource#getRequirements(String) requirements} (that is, imported
128
	 * packages).
129
	 */
130
	public static final String WIRING_PACKAGE_NAMESPACE = "osgi.wiring.package";
131
132
	/**
133
	 * Name space for bundle capabilities and requirements.
134
	 * 
135
	 * For capability attributes the following applies:
136
	 * <ul>
137
	 * <li>The
138
	 * <q>osgi.wiring.bundle</q> attribute contains the symbolic name of the
139
	 * bundle.
140
	 * <li>The {@link Constants#BUNDLE_VERSION_ATTRIBUTE bundle-version}
141
	 * attribute contains the {@link Version} of the bundle if one is specified
142
	 * or {@link Version#emptyVersion} if not specified.
143
	 * <li>All other attributes are of type {@link String} and are used as
144
	 * arbitrary matching attributes for the capability.
145
	 * </ul>
146
	 * <p>
147
	 * A non-fragment resource with the {@link #IDENTITY_TYPE_BUNDLE
148
	 * osgi.bundle} type {@link #IDENTITY_TYPE_ATTRIBUTE identity} provides 
149
	 * exactly one <sup>&#8224;</sup> bundle
150
	 * {@link Resource#getCapabilities(String) capability} (that is, the bundle
151
	 * can be required by another bundle). A fragment resource with the 
152
	 * {@link #IDENTITY_TYPE_FRAGMENT osgi.fragment} type 
153
	 * {@link #IDENTITY_TYPE_ATTRIBUTE identity} must not declare
154
	 * a bundle capability. A resource requires zero or more bundle
155
	 * {@link Resource#getRequirements(String) requirements} (that is, required
156
	 * bundles).
157
	 * <p>
158
	 * &#8224; A resource with no symbolic name must not provide a bundle
159
	 * capability.
160
	 */
161
	public static final String WIRING_BUNDLE_NAMESPACE = "osgi.wiring.bundle";
162
163
	/**
164
	 * Name space for host capabilities and requirements.
165
	 * 
166
	 * For capability attributes the following applies:
167
	 * <ul>
168
	 * <li>The
169
	 * <q>osgi.wiring.host</q> attribute contains the symbolic name of the
170
	 * bundle.
171
	 * <li>The {@link Constants#BUNDLE_VERSION_ATTRIBUTE bundle-version}
172
	 * attribute contains the {@link Version} of the bundle if one is specified
173
	 * or {@link Version#emptyVersion} if not specified.
174
	 * <li>All other attributes are of type {@link String} and are used as
175
	 * arbitrary matching attributes for the capability.
176
	 * </ul>
177
	 * <p>
178
	 * <p>
179
	 * A non-fragment resource with the with the {@link #IDENTITY_TYPE_BUNDLE
180
	 * osgi.bundle} type {@link #IDENTITY_TYPE_ATTRIBUTE identity} provides 
181
	 * zero or one <sup>&#8224;</sup> host
182
	 * {@link Resource#getCapabilities(String) capabilities}. 
183
	 * A fragment resource with the 
184
	 * {@link #IDENTITY_TYPE_FRAGMENT osgi.fragment} type 
185
	 * {@link #IDENTITY_TYPE_ATTRIBUTE identity} must not declare
186
	 * a host capability and must 
187
	 * {@link Resource#getRequirements(String) declare} exactly one host
188
	 * requirement.
189
	 * <p>
190
	 * &#8224; A resource with no bundle symbolic name must not provide a host
191
	 * capability.
192
	 */
193
	public static final String WIRING_HOST_NAMESPACE = "osgi.wiring.host";
194
195
	/**
196
	 * A requirement {@link Requirement#getDirectives() directive} used to
197
	 * specify a capability filter. This filter is used to match against a
198
	 * capability's {@link Capability#getAttributes() attributes}.
199
	 */
200
	public final static String REQUIREMENT_FILTER_DIRECTIVE = Constants.FILTER_DIRECTIVE;
201
202
	/**
203
	 * A requirement {@link Requirement#getDirectives() directive} used to
204
	 * specify the resolution type for a requirement. The default value is
205
	 * {@link #REQUIREMENT_RESOLUTION_MANDATORY mandatory}.
206
	 * 
207
	 * @see #REQUIREMENT_RESOLUTION_MANDATORY mandatory
208
	 * @see #REQUIREMENT_RESOLUTION_OPTIONAL optional
209
	 */
210
	public final static String REQUIREMENT_RESOLUTION_DIRECTIVE = Constants.RESOLUTION_DIRECTIVE;
211
	/**
212
	 * A directive value identifying a mandatory
213
	 * {@link Resource#getRequirements(String) requirement} resolution type. A
214
	 * mandatory resolution type indicates that the requirement must be resolved
215
	 * when the {@link Resource resource} is resolved. If such requirement
216
	 * cannot be resolved, the resource fails to resolve.
217
	 * 
218
	 * @see #REQUIREMENT_RESOLUTION_DIRECTIVE
219
	 */
220
	public final static String REQUIREMENT_RESOLUTION_MANDATORY = Constants.RESOLUTION_MANDATORY;
221
222
	/**
223
	 * A directive value identifying an optional
224
	 * {@link Resource#getRequirements(String) requirement} resolution type. An
225
	 * optional resolution type indicates that the requirement is optional and
226
	 * the {@link Resource resource} may be resolved without requirement being
227
	 * resolved.
228
	 * 
229
	 * @see #REQUIREMENT_RESOLUTION_DIRECTIVE
230
	 */
231
	public final static String REQUIREMENT_RESOLUTION_OPTIONAL = Constants.RESOLUTION_OPTIONAL;
232
233
	/**
234
	 * A requirement {@link Requirement#getDirectives() directive} used to
235
	 * specify the effective time for the requirement. The default value is
236
	 * {@link #EFFECTIVE_RESOLVE resolve}.
237
	 * 
238
	 * @see #EFFECTIVE_RESOLVE resolve
239
	 * @see #EFFECTIVE_ACTIVE active
240
	 */
241
	public final static String REQUIREMENT_EFFECTIVE_DIRECTIVE = Constants.EFFECTIVE_DIRECTIVE;
242
243
	/**
244
	 * A directive value identifying a {@link #CAPABILITY_EFFECTIVE_DIRECTIVE
245
	 * capability} or {@link #REQUIREMENT_EFFECTIVE_DIRECTIVE requirement} that
246
	 * is effective at resolve time. Capabilities and requirements with an
247
	 * effective time of resolve are the only capabilities which are processed
248
	 * while resolving a resource.
249
	 * 
250
	 * @see #REQUIREMENT_EFFECTIVE_DIRECTIVE
251
	 * @see #CAPABILITY_EFFECTIVE_DIRECTIVE
252
	 */
253
	public final static String EFFECTIVE_RESOLVE = Constants.EFFECTIVE_RESOLVE;
254
255
	/**
256
	 * A directive value identifying a {@link #CAPABILITY_EFFECTIVE_DIRECTIVE
257
	 * capability} or {@link #REQUIREMENT_EFFECTIVE_DIRECTIVE requirement} that
258
	 * is effective at active time. Capabilities and requirements with an
259
	 * effective time of active are ignored while resolving a resource.
260
	 * 
261
	 * @see #REQUIREMENT_EFFECTIVE_DIRECTIVE
262
	 * @see #CAPABILITY_EFFECTIVE_DIRECTIVE
263
	 */
264
	public final static String EFFECTIVE_ACTIVE = Constants.EFFECTIVE_ACTIVE;
265
266
	/**
267
	 * A requirement {@link Requirement#getDirectives() directive} used to
268
	 * specify the visibility type for a requirement. The default value is
269
	 * {@link #REQUIREMENT_VISIBILITY_PRIVATE private}. This directive must only
270
	 * be used for requirements with the require
271
	 * {@link #WIRING_BUNDLE_NAMESPACE bundle} name space.
272
	 * 
273
	 * @see #REQUIREMENT_VISIBILITY_PRIVATE private
274
	 * @see #REQUIREMENT_VISIBILITY_REEXPORT reexport
275
	 */
276
	public final static String REQUIREMENT_VISIBILITY_DIRECTIVE = Constants.VISIBILITY_DIRECTIVE;
277
278
	/**
279
	 * A directive value identifying a private
280
	 * {@link #REQUIREMENT_VISIBILITY_DIRECTIVE visibility} type. A private
281
	 * visibility type indicates that any {@link #WIRING_PACKAGE_NAMESPACE
282
	 * packages} that are exported by the required
283
	 * {@link #WIRING_BUNDLE_NAMESPACE bundle} are not made visible on the
284
	 * export signature of the requiring {@link #WIRING_BUNDLE_NAMESPACE bundle}
285
	 * .
286
	 * 
287
	 * @see #REQUIREMENT_VISIBILITY_DIRECTIVE
288
	 */
289
	public final static String REQUIREMENT_VISIBILITY_PRIVATE = Constants.VISIBILITY_PRIVATE;
290
291
	/**
292
	 * A directive value identifying a reexport
293
	 * {@link #REQUIREMENT_VISIBILITY_DIRECTIVE visibility} type. A reexport
294
	 * visibility type indicates any {@link #WIRING_PACKAGE_NAMESPACE packages}
295
	 * that are exported by the required {@link #WIRING_BUNDLE_NAMESPACE bundle}
296
	 * are re-exported by the requiring {@link #WIRING_BUNDLE_NAMESPACE bundle}.
297
	 */
298
	public final static String REQUIREMENT_VISIBILITY_REEXPORT = Constants.VISIBILITY_REEXPORT;
299
300
	/**
301
	 * A requirement {@link Requirement#getDirectives() directive} used to
302
	 * specify the cardinality for a requirement. The default value is
303
	 * {@link #REQUIREMENT_CARDINALITY_SINGULAR singular}.
304
	 * 
305
	 * @see #REQUIREMENT_CARDINALITY_MULTIPLE multiple
306
	 * @see #REQUIREMENT_CARDINALITY_SINGULAR singular
307
	 */
308
	public final static String REQUIREMENT_CARDINALITY_DIRECTIVE = "cardinality";
309
310
	/**
311
	 * A directive value identifying a multiple
312
	 * {@link #REQUIREMENT_CARDINALITY_DIRECTIVE cardinality} type.
313
	 */
314
	public final static String REQUIREMENT_CARDINALITY_MULTIPLE = "multiple";
315
316
	/**
317
	 * A directive value identifying a singular
318
	 * {@link #REQUIREMENT_CARDINALITY_DIRECTIVE cardinality} type.
319
	 */
320
	public final static String REQUIREMENT_CARDINALITY_SINGULAR = "singular";
321
322
	/**
323
	 * A capability {@link Capability#getDirectives() directive} used to specify
324
	 * the comma separated list of {@link #WIRING_PACKAGE_NAMESPACE package}
325
	 * names a capability uses.
326
	 */
327
	public final static String CAPABILITY_USES_DIRECTIVE = Constants.USES_DIRECTIVE;
328
329
	/**
330
	 * A capability {@link Capability#getDirectives() directive} used to specify
331
	 * the effective time for the capability. The default value is
332
	 * {@link #EFFECTIVE_RESOLVE resolve}.
333
	 * 
334
	 * @see #EFFECTIVE_RESOLVE resolve
335
	 * @see #EFFECTIVE_ACTIVE active
336
	 */
337
	public final static String CAPABILITY_EFFECTIVE_DIRECTIVE = Constants.EFFECTIVE_DIRECTIVE;
338
339
	/**
340
	 * A capability {@link Capability#getDirectives() directive} used to specify
341
	 * the comma separated list of mandatory attributes which must be specified
342
	 * in the {@link #REQUIREMENT_FILTER_DIRECTIVE filter} of a requirement in
343
	 * order for the capability to match the requirement. This directive must
344
	 * only be used for capabilities with the {@link #WIRING_PACKAGE_NAMESPACE
345
	 * package} name space.
346
	 */
347
	public final static String CAPABILITY_MANDATORY_DIRECTIVE = "mandatory";
348
349
	/**
350
	 * A capability {@link Capability#getDirectives() directive} used to specify
351
	 * the comma separated list of classes which must be allowed to be exported.
352
	 * This directive must only be used for capabilities with the
353
	 * {@link #WIRING_PACKAGE_NAMESPACE package} name space.
354
	 */
355
	public final static String CAPABILITY_INCLUDE_DIRECTIVE = "include";
356
357
	/**
358
	 * A capability {@link Capability#getDirectives() directive} used to specify
359
	 * the comma separated list of classes which must not be allowed to be
360
	 * exported. This directive must only be used for capabilities with the
361
	 * {@link #WIRING_PACKAGE_NAMESPACE package} name space.
362
	 */
363
	public final static String CAPABILITY_EXCLUDE_DIRECTIVE = "exclude";
364
}
(-)osgi/src/org/osgi/framework/wiring/Wire.java (+57 lines)
Added Link Here
1
/*
2
 * Copyright (c) OSGi Alliance (2011). All Rights Reserved.
3
 * 
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *      http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
17
package org.osgi.framework.wiring;
18
19
/**
20
 * A wire connecting a {@link Capability} to a {@link Requirement}.
21
 * 
22
 * @ThreadSafe
23
 * @version $Id: 328ede0f8ddf3795594a8e0fc2cb11bbe7fa38fc $
24
 */
25
public interface Wire {
26
	/**
27
	 * Returns the {@link Capability} for this wire.
28
	 * 
29
	 * @return The {@link Capability} for this wire.
30
	 */
31
	Capability getCapability();
32
33
	/**
34
	 * Return the {@link Requirement} for this wire.
35
	 * 
36
	 * @return The {@link Requirement} for this wire.
37
	 */
38
	Requirement getRequirement();
39
40
	/**
41
	 * Return the providing {@link Resource resource} of the {@link #getCapability() capability}.
42
	 * <p>
43
	 * The resource returned may differ from the resource referenced by the {@link #getCapability()
44
	 * capability}.
45
	 * @return the providing {@link Resource resource}.
46
	 */
47
	Resource getProvider();
48
49
	/**
50
	 * Return the requiring {@link Resource resource} of the {@link #getRequirement() requirement}.
51
	 * <p>
52
	 * The resource returned my differ from the resource referenced by the {@link #getRequirement()
53
	 * requirement}
54
	 * @return the requiring {@link Resource resource}.
55
	 */
56
	Resource getRequirer();
57
}
(-)resolver/src/org/eclipse/osgi/internal/resolver/BaseDescriptionImpl.java (+4 lines)
Lines 156-160 Link Here
156
		public String toString() {
156
		public String toString() {
157
			return getNamespace() + BaseDescriptionImpl.toString(getAttributes(), false) + BaseDescriptionImpl.toString(getDirectives(), true);
157
			return getNamespace() + BaseDescriptionImpl.toString(getAttributes(), false) + BaseDescriptionImpl.toString(getDirectives(), true);
158
		}
158
		}
159
160
		public BundleRevision getResource() {
161
			return getRevision();
162
		}
159
	}
163
	}
160
}
164
}
(-)resolver/src/org/eclipse/osgi/internal/resolver/BundleDescriptionImpl.java (+18 lines)
Lines 1031-1036 Link Here
1031
		public String toString() {
1031
		public String toString() {
1032
			return getRequirement() + " -> " + getCapability(); //$NON-NLS-1$
1032
			return getRequirement() + " -> " + getCapability(); //$NON-NLS-1$
1033
		}
1033
		}
1034
1035
		public BundleRevision getProvider() {
1036
			return getCapability().getRevision();
1037
		}
1038
1039
		public BundleRevision getRequirer() {
1040
			return getRequirement().getRevision();
1041
		}
1034
	}
1042
	}
1035
1043
1036
	// Note that description wiring are identity equality based
1044
	// Note that description wiring are identity equality based
Lines 1230-1233 Link Here
1230
			return BundleDescriptionImpl.this.toString();
1238
			return BundleDescriptionImpl.this.toString();
1231
		}
1239
		}
1232
	}
1240
	}
1241
1242
	@SuppressWarnings({"cast", "unchecked", "rawtypes"})
1243
	public List<Capability> getCapabilities(String namespace) {
1244
		return (List<Capability>) (List) getDeclaredCapabilities(namespace);
1245
	}
1246
1247
	@SuppressWarnings({"cast", "unchecked", "rawtypes"})
1248
	public List<Requirement> getRequirements(String namespace) {
1249
		return (List<Requirement>) (List) getDeclaredRequirements(namespace);
1250
	}
1233
}
1251
}
(-)resolver/src/org/eclipse/osgi/internal/resolver/StateBuilder.java (-3 / +29 lines)
Lines 19-24 Link Here
19
import org.eclipse.osgi.util.ManifestElement;
19
import org.eclipse.osgi.util.ManifestElement;
20
import org.eclipse.osgi.util.NLS;
20
import org.eclipse.osgi.util.NLS;
21
import org.osgi.framework.*;
21
import org.osgi.framework.*;
22
import org.osgi.framework.wiring.ResourceConstants;
22
23
23
/**
24
/**
24
 * This class builds bundle description objects from manifests
25
 * This class builds bundle description objects from manifests
Lines 118-124 Link Here
118
		result.setGenericRequires(createGenericRequires(genericRequires, osgiRequires));
119
		result.setGenericRequires(createGenericRequires(genericRequires, osgiRequires));
119
		ManifestElement[] genericCapabilities = getGenericCapabilities(manifest, genericAliases);
120
		ManifestElement[] genericCapabilities = getGenericCapabilities(manifest, genericAliases);
120
		ManifestElement[] osgiCapabilities = ManifestElement.parseHeader(Constants.PROVIDE_CAPABILITY, manifest.get(Constants.PROVIDE_CAPABILITY));
121
		ManifestElement[] osgiCapabilities = ManifestElement.parseHeader(Constants.PROVIDE_CAPABILITY, manifest.get(Constants.PROVIDE_CAPABILITY));
121
		result.setGenericCapabilities(createGenericCapabilities(genericCapabilities, osgiCapabilities));
122
		result.setGenericCapabilities(createGenericCapabilities(genericCapabilities, osgiCapabilities, result));
122
		ManifestElement[] nativeCode = ManifestElement.parseHeader(Constants.BUNDLE_NATIVECODE, manifest.get(Constants.BUNDLE_NATIVECODE));
123
		ManifestElement[] nativeCode = ManifestElement.parseHeader(Constants.BUNDLE_NATIVECODE, manifest.get(Constants.BUNDLE_NATIVECODE));
123
		result.setNativeCodeSpecification(createNativeCode(nativeCode));
124
		result.setNativeCodeSpecification(createNativeCode(nativeCode));
124
		return result;
125
		return result;
Lines 554-565 Link Here
554
		return results;
555
		return results;
555
	}
556
	}
556
557
557
	private static GenericDescription[] createGenericCapabilities(ManifestElement[] equinoxCapabilities, ManifestElement[] osgiCapabilities) {
558
	private static GenericDescription[] createGenericCapabilities(ManifestElement[] equinoxCapabilities, ManifestElement[] osgiCapabilities, BundleDescription description) {
558
		List<GenericDescription> result = createEquinoxCapabilities(equinoxCapabilities);
559
		List<GenericDescription> result = createEquinoxCapabilities(equinoxCapabilities);
559
		result = createOSGiCapabilities(osgiCapabilities, result);
560
		result = createOSGiCapabilities(osgiCapabilities, result, description);
560
		return result == null ? null : result.toArray(new GenericDescription[result.size()]);
561
		return result == null ? null : result.toArray(new GenericDescription[result.size()]);
561
	}
562
	}
562
563
564
	private static List<GenericDescription> createOSGiCapabilities(ManifestElement[] osgiCapabilities, List<GenericDescription> result, BundleDescription description) {
565
		if (result == null)
566
			result = new ArrayList<GenericDescription>(osgiCapabilities == null ? 10 : osgiCapabilities.length + 1);
567
		// Always have an osgi.identity capability.
568
		result.add(createOsgiIdentityCapability(description));
569
		return createOSGiCapabilities(osgiCapabilities, result);
570
	}
571
563
	static List<GenericDescription> createOSGiCapabilities(ManifestElement[] osgiCapabilities, List<GenericDescription> result) {
572
	static List<GenericDescription> createOSGiCapabilities(ManifestElement[] osgiCapabilities, List<GenericDescription> result) {
564
		if (osgiCapabilities == null)
573
		if (osgiCapabilities == null)
565
			return result;
574
			return result;
Lines 570-575 Link Here
570
			String[] namespaces = element.getValueComponents();
579
			String[] namespaces = element.getValueComponents();
571
			types: for (String namespace : namespaces) {
580
			types: for (String namespace : namespaces) {
572
				String effective = element.getDirective(Constants.EFFECTIVE_DIRECTIVE);
581
				String effective = element.getDirective(Constants.EFFECTIVE_DIRECTIVE);
582
				// Any declared osgi.identity capability with an effective directive value of "resolve" will be overridden.
573
				if (effective != null && !Constants.EFFECTIVE_RESOLVE.equals(effective))
583
				if (effective != null && !Constants.EFFECTIVE_RESOLVE.equals(effective))
574
					break types; // ignore any namespace that is not effective at resolve time.
584
					break types; // ignore any namespace that is not effective at resolve time.
575
				GenericDescriptionImpl desc = new GenericDescriptionImpl();
585
				GenericDescriptionImpl desc = new GenericDescriptionImpl();
Lines 748-751 Link Here
748
			throw new BundleException(message + " : " + NLS.bind(StateMsg.HEADER_EXTENSION_ERROR, hostName), BundleException.MANIFEST_ERROR); //$NON-NLS-1$
758
			throw new BundleException(message + " : " + NLS.bind(StateMsg.HEADER_EXTENSION_ERROR, hostName), BundleException.MANIFEST_ERROR); //$NON-NLS-1$
749
		}
759
		}
750
	}
760
	}
761
762
	private static GenericDescription createOsgiIdentityCapability(BundleDescription description) {
763
		GenericDescriptionImpl result = new GenericDescriptionImpl();
764
		result.setType(ResourceConstants.IDENTITY_NAMESPACE);
765
		Dictionary<String, Object> attributes = new Hashtable<String, Object>();
766
		attributes.put(ResourceConstants.IDENTITY_NAMESPACE, description.getSymbolicName());
767
		attributes.put(ResourceConstants.IDENTITY_TYPE_ATTRIBUTE, description.getHost() == null ? ResourceConstants.IDENTITY_TYPE_BUNDLE : ResourceConstants.IDENTITY_TYPE_FRAGMENT);
768
		attributes.put(ResourceConstants.IDENTITY_VERSION_ATTRIBUTE, description.getVersion());
769
		result.setAttributes(attributes);
770
		Map<String, String> directives = new HashMap<String, String>();
771
		directives.put(ResourceConstants.IDENTITY_SINGLETON_DIRECTIVE, String.valueOf(description.isSingleton()));
772
		// The effective directive needs to be set to anything but "resolve".
773
		directives.put(ResourceConstants.CAPABILITY_EFFECTIVE_DIRECTIVE, ResourceConstants.EFFECTIVE_ACTIVE);
774
		result.setDirectives(directives);
775
		return result;
776
	}
751
}
777
}
(-)resolver/src/org/eclipse/osgi/internal/resolver/VersionConstraintImpl.java (+10 lines)
Lines 156-161 Link Here
156
		public String toString() {
156
		public String toString() {
157
			return getNamespace() + BaseDescriptionImpl.toString(getAttributes(), false) + BaseDescriptionImpl.toString(getDirectives(), true);
157
			return getNamespace() + BaseDescriptionImpl.toString(getAttributes(), false) + BaseDescriptionImpl.toString(getDirectives(), true);
158
		}
158
		}
159
160
		public boolean matches(Capability capability) {
161
			if (!(capability instanceof BundleCapability))
162
				return false;
163
			return matches((BundleCapability) capability);
164
		}
165
166
		public BundleRevision getResource() {
167
			return getRevision();
168
		}
159
	}
169
	}
160
170
161
	static StringBuffer addFilterAttributes(StringBuffer filter, Map<String, ?> attributes) {
171
	static StringBuffer addFilterAttributes(StringBuffer filter, Map<String, ?> attributes) {
(-)src/org/eclipse/osgi/tests/services/resolver/GenericCapabilityTest.java (-7 / +19 lines)
Lines 255-261 Link Here
255
		required.append("foo; selection-filter=\"(version>=1.3.0)\",");
255
		required.append("foo; selection-filter=\"(version>=1.3.0)\",");
256
		required.append("bar:bartype; selection-filter=\"(attr1=value1)\",");
256
		required.append("bar:bartype; selection-filter=\"(attr1=value1)\",");
257
		required.append("test.types:testtype; selection-filter=\"(&(aVersion>=2.0.0)(aLong>=5555)(aDouble>=1.00)(aUri=file:/test)(aSet=c)(aString=someString))\",");
257
		required.append("test.types:testtype; selection-filter=\"(&(aVersion>=2.0.0)(aLong>=5555)(aDouble>=1.00)(aUri=file:/test)(aSet=c)(aString=someString))\",");
258
		required.append("fragmentStuff");
258
		required.append("*:osgi.identity; selection-filter=\"(&(osgi.identity=genericCapablity)(version=1.0.0)(type=osgi.bundle))\",");
259
		required.append("fragmentStuff,");
260
		required.append("*:osgi.identity; selection-filter=\"(&(osgi.identity=genericCapability.frag1)(version=1.0.0)(type=osgi.fragment))\"");
259
		manifest.put(GENERIC_REQUIRE, required.toString());
261
		manifest.put(GENERIC_REQUIRE, required.toString());
260
		BundleDescription genReq = state.getFactory().createBundleDescription(state, manifest, (String) manifest.get(Constants.BUNDLE_SYMBOLICNAME), bundleID++);
262
		BundleDescription genReq = state.getFactory().createBundleDescription(state, manifest, (String) manifest.get(Constants.BUNDLE_SYMBOLICNAME), bundleID++);
261
263
Lines 269-276 Link Here
269
		assertTrue("1.2", genCapFrag.isResolved());
271
		assertTrue("1.2", genCapFrag.isResolved());
270
		GenericSpecification[] genSpecs = genReq.getGenericRequires();
272
		GenericSpecification[] genSpecs = genReq.getGenericRequires();
271
		GenericDescription[] selectedCapabilities = genCap.getSelectedGenericCapabilities();
273
		GenericDescription[] selectedCapabilities = genCap.getSelectedGenericCapabilities();
272
		assertTrue("2.0", genSpecs.length == 4);
274
		assertTrue("2.0", genSpecs.length == 6);
273
		assertEquals("Wrong number of selected capabilities", 4, selectedCapabilities.length);
275
		assertEquals("Wrong number of selected capabilities", 6, selectedCapabilities.length);
274
		assertTrue("2.1", genSpecs[0].isResolved());
276
		assertTrue("2.1", genSpecs[0].isResolved());
275
		assertEquals("2.1.1", genSpecs[0].getSupplier(), selectedCapabilities[0]);
277
		assertEquals("2.1.1", genSpecs[0].getSupplier(), selectedCapabilities[0]);
276
		assertTrue("2.2", genSpecs[1].isResolved());
278
		assertTrue("2.2", genSpecs[1].isResolved());
Lines 279-284 Link Here
279
		assertEquals("2.3.1", genSpecs[2].getSupplier(), selectedCapabilities[2]);
281
		assertEquals("2.3.1", genSpecs[2].getSupplier(), selectedCapabilities[2]);
280
		assertTrue("2.4", genSpecs[3].isResolved());
282
		assertTrue("2.4", genSpecs[3].isResolved());
281
		assertEquals("2.4.1", genSpecs[3].getSupplier(), selectedCapabilities[3]);
283
		assertEquals("2.4.1", genSpecs[3].getSupplier(), selectedCapabilities[3]);
284
		assertTrue("2.5", genSpecs[4].isResolved());
285
		assertEquals("2.5.1", genSpecs[4].getSupplier(), selectedCapabilities[4]);
286
		assertTrue("2.6", genSpecs[5].isResolved());
287
		assertEquals("2.6.1", genSpecs[5].getSupplier(), selectedCapabilities[5]);
282
	}
288
	}
283
289
284
	public void testGenericsIntraFrags() throws BundleException {
290
	public void testGenericsIntraFrags() throws BundleException {
Lines 304-310 Link Here
304
		manifest.put(Constants.BUNDLE_SYMBOLICNAME, "org.eclipse.equinox.generic.frag.b");
310
		manifest.put(Constants.BUNDLE_SYMBOLICNAME, "org.eclipse.equinox.generic.frag.b");
305
		manifest.put(Constants.BUNDLE_VERSION, "1.0.0");
311
		manifest.put(Constants.BUNDLE_VERSION, "1.0.0");
306
		manifest.put(Constants.FRAGMENT_HOST, "org.eclipse.equinox.generic.host;bundle-version=\"1.0.0\"");
312
		manifest.put(Constants.FRAGMENT_HOST, "org.eclipse.equinox.generic.host;bundle-version=\"1.0.0\"");
307
		manifest.put("Eclipse-GenericRequire", "frag.a");
313
		StringBuffer required = new StringBuffer();
314
		required.append("*:osgi.identity; selection-filter=\"(&(osgi.identity=org.eclipse.equinox.generic.host)(version=1.0.0)(type=osgi.bundle))\",");
315
		required.append("frag.a,");
316
		required.append("*:osgi.identity; selection-filter=\"(&(osgi.identity=org.eclipse.equinox.generic.frag.a)(version=1.0.0)(type=osgi.fragment))\"");
317
		manifest.put(GENERIC_REQUIRE, required.toString());
308
		BundleDescription genFragB = state.getFactory().createBundleDescription(state, manifest, (String) manifest.get(Constants.BUNDLE_SYMBOLICNAME), bundleID++);
318
		BundleDescription genFragB = state.getFactory().createBundleDescription(state, manifest, (String) manifest.get(Constants.BUNDLE_SYMBOLICNAME), bundleID++);
309
319
310
		state.addBundle(genHost);
320
		state.addBundle(genHost);
Lines 317-326 Link Here
317
		assertTrue("1.2", genFragB.isResolved());
327
		assertTrue("1.2", genFragB.isResolved());
318
		GenericSpecification[] genSpecs = genFragB.getGenericRequires();
328
		GenericSpecification[] genSpecs = genFragB.getGenericRequires();
319
		GenericDescription[] selected = genHost.getSelectedGenericCapabilities();
329
		GenericDescription[] selected = genHost.getSelectedGenericCapabilities();
320
		assertEquals("Wrong number of selected", 1, selected.length);
330
		assertEquals("Wrong number of selected", 3 + 1, selected.length); // + 1 for fragB osgi.identity cap
321
		assertTrue("2.0", genSpecs.length == 1);
331
		assertTrue("2.0", genSpecs.length == 3);
322
		assertTrue("2.1", genSpecs[0].isResolved());
332
		assertTrue("2.1", genSpecs[0].isResolved());
323
		assertEquals("2.1.1", genSpecs[0].getSupplier(), selected[0]);
333
		assertEquals("2.1.1", genSpecs[0].getSupplier(), selected[0]);
334
		assertEquals("2.1.2", genSpecs[1].getSupplier(), selected[1]);
335
		assertEquals("2.1.3", genSpecs[2].getSupplier(), selected[2]);
324
	}
336
	}
325
337
326
	public void testGenericsAliases() throws BundleException {
338
	public void testGenericsAliases() throws BundleException {
Lines 481-487 Link Here
481
		GenericSpecification[] genSpecs = genReq.getGenericRequires();
493
		GenericSpecification[] genSpecs = genReq.getGenericRequires();
482
		GenericDescription[] selected = genCap.getSelectedGenericCapabilities();
494
		GenericDescription[] selected = genCap.getSelectedGenericCapabilities();
483
		assertTrue("2.0", genSpecs.length == 4);
495
		assertTrue("2.0", genSpecs.length == 4);
484
		assertEquals("Wrong number of selected", 4, selected.length);
496
		assertEquals("Wrong number of selected", 4 + 2, selected.length); // + 2 for host and frag osgi.identity caps
485
		assertTrue("2.1", genSpecs[0].isResolved());
497
		assertTrue("2.1", genSpecs[0].isResolved());
486
		assertEquals("2.1.1", genSpecs[0].getSupplier(), selected[0]);
498
		assertEquals("2.1.1", genSpecs[0].getSupplier(), selected[0]);
487
		assertTrue("2.2", genSpecs[1].isResolved());
499
		assertTrue("2.2", genSpecs[1].isResolved());

Return to bug 349618