|
Lines 1-5
Link Here
|
| 1 |
/******************************************************************************* |
1 |
/******************************************************************************* |
| 2 |
* Copyright (c) 2003, 2010 IBM Corporation and others. |
2 |
* Copyright (c) 2003, 2011 IBM Corporation and others. |
| 3 |
* All rights reserved. This program and the accompanying materials |
3 |
* All rights reserved. This program and the accompanying materials |
| 4 |
* are made available under the terms of the Eclipse Public License v1.0 |
4 |
* are made available under the terms of the Eclipse Public License v1.0 |
| 5 |
* which accompanies this distribution, and is available at |
5 |
* which accompanies this distribution, and is available at |
|
Lines 19-26
Link Here
|
| 19 |
import org.osgi.framework.Constants; |
19 |
import org.osgi.framework.Constants; |
| 20 |
|
20 |
|
| 21 |
public class GenericCapabilityTest extends AbstractStateTest { |
21 |
public class GenericCapabilityTest extends AbstractStateTest { |
| 22 |
private static final String GENERIC_REQUIRE = "Eclipse-GenericRequire"; //$NON-NLS-1$ |
22 |
static final String GENERIC_REQUIRE = "Eclipse-GenericRequire"; //$NON-NLS-1$ |
| 23 |
private static final String GENERIC_CAPABILITY = "Eclipse-GenericCapability"; //$NON-NLS-1$ |
23 |
static final String GENERIC_CAPABILITY = "Eclipse-GenericCapability"; //$NON-NLS-1$ |
| 24 |
|
24 |
|
| 25 |
public static Test suite() { |
25 |
public static Test suite() { |
| 26 |
return new TestSuite(GenericCapabilityTest.class); |
26 |
return new TestSuite(GenericCapabilityTest.class); |
|
Lines 35-41
Link Here
|
| 35 |
Hashtable manifest = new Hashtable(); |
35 |
Hashtable manifest = new Hashtable(); |
| 36 |
long bundleID = 0; |
36 |
long bundleID = 0; |
| 37 |
manifest.put(Constants.BUNDLE_MANIFESTVERSION, "2"); |
37 |
manifest.put(Constants.BUNDLE_MANIFESTVERSION, "2"); |
| 38 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericCapablity"); |
38 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericCapability"); |
| 39 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
39 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
| 40 |
StringBuffer capabililty = new StringBuffer(); |
40 |
StringBuffer capabililty = new StringBuffer(); |
| 41 |
capabililty.append("foo; version=\"1.3.1\"; attr1=\"value1\"; attr2=\"value2\","); |
41 |
capabililty.append("foo; version=\"1.3.1\"; attr1=\"value1\"; attr2=\"value2\","); |
|
Lines 55-60
Link Here
|
| 55 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericRequire"); |
55 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericRequire"); |
| 56 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
56 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
| 57 |
StringBuffer required = new StringBuffer(); |
57 |
StringBuffer required = new StringBuffer(); |
|
|
58 |
required.append("genericCapability:osgi.identity; selection-filter=\"(version=1.0)\","); |
| 58 |
required.append("foo; selection-filter=\"(version>=1.3.0)\","); |
59 |
required.append("foo; selection-filter=\"(version>=1.3.0)\","); |
| 59 |
required.append("bar:bartype; selection-filter=\"(attr1=value1)\","); |
60 |
required.append("bar:bartype; selection-filter=\"(attr1=value1)\","); |
| 60 |
required.append("test.types:testtype; selection-filter=\"(&(aVersion>=2.0.0)(aLong>=5555)(aDouble>=1.00)(aUri=file:/test)(aSet=c)(aString=someString))\""); |
61 |
required.append("test.types:testtype; selection-filter=\"(&(aVersion>=2.0.0)(aLong>=5555)(aDouble>=1.00)(aUri=file:/test)(aSet=c)(aString=someString))\""); |
|
Lines 68-80
Link Here
|
| 68 |
assertTrue("1.0", genCap.isResolved()); |
69 |
assertTrue("1.0", genCap.isResolved()); |
| 69 |
assertTrue("1.1", genReq.isResolved()); |
70 |
assertTrue("1.1", genReq.isResolved()); |
| 70 |
GenericSpecification[] genSpecs = genReq.getGenericRequires(); |
71 |
GenericSpecification[] genSpecs = genReq.getGenericRequires(); |
| 71 |
assertTrue("2.0", genSpecs.length == 3); |
72 |
assertTrue("2.0", genSpecs.length == 4); |
| 72 |
assertTrue("2.1", genSpecs[0].isResolved()); |
73 |
assertTrue("2.1", genSpecs[0].isResolved()); |
| 73 |
assertEquals("2.1.1", genSpecs[0].getSupplier(), genCap.getGenericCapabilities()[0]); |
74 |
assertEquals("2.1.1", genSpecs[0].getSupplier(), genCap.getGenericCapabilities()[0]); |
| 74 |
assertTrue("2.2", genSpecs[1].isResolved()); |
75 |
assertTrue("2.2", genSpecs[1].isResolved()); |
| 75 |
assertEquals("2.2.1", genSpecs[1].getSupplier(), genCap.getGenericCapabilities()[1]); |
76 |
assertEquals("2.2.1", genSpecs[1].getSupplier(), genCap.getGenericCapabilities()[1]); |
| 76 |
assertTrue("2.3", genSpecs[2].isResolved()); |
77 |
assertTrue("2.3", genSpecs[2].isResolved()); |
| 77 |
assertEquals("2.3.1", genSpecs[2].getSupplier(), genCap.getGenericCapabilities()[2]); |
78 |
assertEquals("2.3.1", genSpecs[2].getSupplier(), genCap.getGenericCapabilities()[2]); |
|
|
79 |
assertTrue("2.4", genSpecs[3].isResolved()); |
| 80 |
assertEquals("2.4.1", genSpecs[3].getSupplier(), genCap.getGenericCapabilities()[3]); |
| 78 |
} |
81 |
} |
| 79 |
|
82 |
|
| 80 |
public void testGenericsUpdate() throws BundleException { |
83 |
public void testGenericsUpdate() throws BundleException { |
|
Lines 82-88
Link Here
|
| 82 |
Hashtable manifest = new Hashtable(); |
85 |
Hashtable manifest = new Hashtable(); |
| 83 |
long bundleID = 0; |
86 |
long bundleID = 0; |
| 84 |
manifest.put(Constants.BUNDLE_MANIFESTVERSION, "2"); |
87 |
manifest.put(Constants.BUNDLE_MANIFESTVERSION, "2"); |
| 85 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericCapablity"); |
88 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericCapability"); |
| 86 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
89 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
| 87 |
StringBuffer capabililty = new StringBuffer(); |
90 |
StringBuffer capabililty = new StringBuffer(); |
| 88 |
capabililty.append("foo; version=\"1.3.1\"; attr1=\"value1\"; attr2=\"value2\","); |
91 |
capabililty.append("foo; version=\"1.3.1\"; attr1=\"value1\"; attr2=\"value2\","); |
|
Lines 102-107
Link Here
|
| 102 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericRequire"); |
105 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericRequire"); |
| 103 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
106 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
| 104 |
StringBuffer required = new StringBuffer(); |
107 |
StringBuffer required = new StringBuffer(); |
|
|
108 |
required.append("genericCapability:osgi.identity; selection-filter=\"(version>=1.0)\","); |
| 105 |
required.append("foo; selection-filter=\"(version>=1.3.0)\","); |
109 |
required.append("foo; selection-filter=\"(version>=1.3.0)\","); |
| 106 |
required.append("bar:bartype; selection-filter=\"(attr1=value1)\","); |
110 |
required.append("bar:bartype; selection-filter=\"(attr1=value1)\","); |
| 107 |
required.append("test.types:testtype; selection-filter=\"(&(aVersion>=2.0.0)(aLong>=5555)(aDouble>=1.00)(aUri=file:/test)(aSet=c)(aString=someString))\""); |
111 |
required.append("test.types:testtype; selection-filter=\"(&(aVersion>=2.0.0)(aLong>=5555)(aDouble>=1.00)(aUri=file:/test)(aSet=c)(aString=someString))\""); |
|
Lines 115-131
Link Here
|
| 115 |
assertTrue("1.0", genCap.isResolved()); |
119 |
assertTrue("1.0", genCap.isResolved()); |
| 116 |
assertTrue("1.1", genReq.isResolved()); |
120 |
assertTrue("1.1", genReq.isResolved()); |
| 117 |
GenericSpecification[] genSpecs = genReq.getGenericRequires(); |
121 |
GenericSpecification[] genSpecs = genReq.getGenericRequires(); |
| 118 |
assertTrue("2.0", genSpecs.length == 3); |
122 |
assertTrue("2.0", genSpecs.length == 4); |
| 119 |
assertTrue("2.1", genSpecs[0].isResolved()); |
123 |
assertTrue("2.1", genSpecs[0].isResolved()); |
| 120 |
assertEquals("2.1.1", genSpecs[0].getSupplier(), genCap.getGenericCapabilities()[0]); |
124 |
assertEquals("2.1.1", genSpecs[0].getSupplier(), genCap.getGenericCapabilities()[0]); |
| 121 |
assertTrue("2.2", genSpecs[1].isResolved()); |
125 |
assertTrue("2.2", genSpecs[1].isResolved()); |
| 122 |
assertEquals("2.2.1", genSpecs[1].getSupplier(), genCap.getGenericCapabilities()[1]); |
126 |
assertEquals("2.2.1", genSpecs[1].getSupplier(), genCap.getGenericCapabilities()[1]); |
| 123 |
assertTrue("2.3", genSpecs[2].isResolved()); |
127 |
assertTrue("2.3", genSpecs[2].isResolved()); |
| 124 |
assertEquals("2.3.1", genSpecs[2].getSupplier(), genCap.getGenericCapabilities()[2]); |
128 |
assertEquals("2.3.1", genSpecs[2].getSupplier(), genCap.getGenericCapabilities()[2]); |
|
|
129 |
assertTrue("2.4", genSpecs[3].isResolved()); |
| 130 |
assertEquals("2.4.1", genSpecs[3].getSupplier(), genCap.getGenericCapabilities()[3]); |
| 125 |
|
131 |
|
| 126 |
manifest.clear(); |
132 |
manifest.clear(); |
| 127 |
manifest.put(Constants.BUNDLE_MANIFESTVERSION, "2"); |
133 |
manifest.put(Constants.BUNDLE_MANIFESTVERSION, "2"); |
| 128 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericCapablity"); |
134 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericCapability"); |
| 129 |
manifest.put(Constants.BUNDLE_VERSION, "2.0.0"); |
135 |
manifest.put(Constants.BUNDLE_VERSION, "2.0.0"); |
| 130 |
capabililty = new StringBuffer(); |
136 |
capabililty = new StringBuffer(); |
| 131 |
capabililty.append("foo; version=\"1.3.2\"; attr1=\"value1\"; attr2=\"value2\","); |
137 |
capabililty.append("foo; version=\"1.3.2\"; attr1=\"value1\"; attr2=\"value2\","); |
|
Lines 146-158
Link Here
|
| 146 |
assertTrue("3.0", genCap2.isResolved()); |
152 |
assertTrue("3.0", genCap2.isResolved()); |
| 147 |
assertTrue("3.1", genReq.isResolved()); |
153 |
assertTrue("3.1", genReq.isResolved()); |
| 148 |
genSpecs = genReq.getGenericRequires(); |
154 |
genSpecs = genReq.getGenericRequires(); |
| 149 |
assertTrue("4.0", genSpecs.length == 3); |
155 |
assertTrue("4.0", genSpecs.length == 4); |
| 150 |
assertTrue("4.1", genSpecs[0].isResolved()); |
156 |
assertTrue("4.1", genSpecs[0].isResolved()); |
| 151 |
assertEquals("4.1.1", genSpecs[0].getSupplier(), genCap2.getGenericCapabilities()[0]); |
157 |
assertEquals("4.1.1", genSpecs[0].getSupplier(), genCap2.getGenericCapabilities()[0]); |
| 152 |
assertTrue("4.2", genSpecs[1].isResolved()); |
158 |
assertTrue("4.2", genSpecs[1].isResolved()); |
| 153 |
assertEquals("4.2.1", genSpecs[1].getSupplier(), genCap2.getGenericCapabilities()[1]); |
159 |
assertEquals("4.2.1", genSpecs[1].getSupplier(), genCap2.getGenericCapabilities()[1]); |
| 154 |
assertTrue("4.3", genSpecs[2].isResolved()); |
160 |
assertTrue("4.3", genSpecs[2].isResolved()); |
| 155 |
assertEquals("4.3.1", genSpecs[2].getSupplier(), genCap2.getGenericCapabilities()[2]); |
161 |
assertEquals("4.3.1", genSpecs[2].getSupplier(), genCap2.getGenericCapabilities()[2]); |
|
|
162 |
assertTrue("4.4", genSpecs[3].isResolved()); |
| 163 |
assertEquals("4.4.1", genSpecs[3].getSupplier(), genCap2.getGenericCapabilities()[3]); |
| 156 |
|
164 |
|
| 157 |
} |
165 |
} |
| 158 |
|
166 |
|
|
Lines 161-167
Link Here
|
| 161 |
Hashtable manifest = new Hashtable(); |
169 |
Hashtable manifest = new Hashtable(); |
| 162 |
long bundleID = 0; |
170 |
long bundleID = 0; |
| 163 |
manifest.put(Constants.BUNDLE_MANIFESTVERSION, "2"); |
171 |
manifest.put(Constants.BUNDLE_MANIFESTVERSION, "2"); |
| 164 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericCapablity"); |
172 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericCapability"); |
| 165 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
173 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
| 166 |
StringBuffer capabililty = new StringBuffer(); |
174 |
StringBuffer capabililty = new StringBuffer(); |
| 167 |
capabililty.append("foo; version=\"1.3.1\"; attr1=\"value1\"; attr2=\"value2\","); |
175 |
capabililty.append("foo; version=\"1.3.1\"; attr1=\"value1\"; attr2=\"value2\","); |
|
Lines 181-186
Link Here
|
| 181 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericRequire"); |
189 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericRequire"); |
| 182 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
190 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
| 183 |
StringBuffer required = new StringBuffer(); |
191 |
StringBuffer required = new StringBuffer(); |
|
|
192 |
required.append("genericCapability:osgi.identity; selection-filter=\"(version>=1.0)\","); |
| 184 |
required.append("foo; selection-filter=\"(version>=1.3.0)\","); |
193 |
required.append("foo; selection-filter=\"(version>=1.3.0)\","); |
| 185 |
required.append("bar:bartype; selection-filter=\"(attr1=value1)\","); |
194 |
required.append("bar:bartype; selection-filter=\"(attr1=value1)\","); |
| 186 |
required.append("test.types:testtype; selection-filter=\"(&(aVersion>=2.0.0)(aLong>=5555)(aDouble>=1.00)(aUri=file:/test)(aSet=c)(aString=someString))\""); |
195 |
required.append("test.types:testtype; selection-filter=\"(&(aVersion>=2.0.0)(aLong>=5555)(aDouble>=1.00)(aUri=file:/test)(aSet=c)(aString=someString))\""); |
|
Lines 194-219
Link Here
|
| 194 |
assertTrue("1.0", genCap.isResolved()); |
203 |
assertTrue("1.0", genCap.isResolved()); |
| 195 |
assertTrue("1.1", genReq.isResolved()); |
204 |
assertTrue("1.1", genReq.isResolved()); |
| 196 |
GenericSpecification[] genSpecs = genReq.getGenericRequires(); |
205 |
GenericSpecification[] genSpecs = genReq.getGenericRequires(); |
| 197 |
assertTrue("2.0", genSpecs.length == 3); |
206 |
assertTrue("2.0", genSpecs.length == 4); |
| 198 |
assertTrue("2.1", genSpecs[0].isResolved()); |
207 |
assertTrue("2.1", genSpecs[0].isResolved()); |
| 199 |
assertEquals("2.1.1", genSpecs[0].getSupplier(), genCap.getGenericCapabilities()[0]); |
208 |
assertEquals("2.1.1", genSpecs[0].getSupplier(), genCap.getGenericCapabilities()[0]); |
| 200 |
assertTrue("2.2", genSpecs[1].isResolved()); |
209 |
assertTrue("2.2", genSpecs[1].isResolved()); |
| 201 |
assertEquals("2.2.1", genSpecs[1].getSupplier(), genCap.getGenericCapabilities()[1]); |
210 |
assertEquals("2.2.1", genSpecs[1].getSupplier(), genCap.getGenericCapabilities()[1]); |
| 202 |
assertTrue("2.3", genSpecs[2].isResolved()); |
211 |
assertTrue("2.3", genSpecs[2].isResolved()); |
| 203 |
assertEquals("2.3.1", genSpecs[2].getSupplier(), genCap.getGenericCapabilities()[2]); |
212 |
assertEquals("2.3.1", genSpecs[2].getSupplier(), genCap.getGenericCapabilities()[2]); |
|
|
213 |
assertTrue("2.4", genSpecs[3].isResolved()); |
| 214 |
assertEquals("2.4.1", genSpecs[3].getSupplier(), genCap.getGenericCapabilities()[3]); |
| 204 |
|
215 |
|
| 205 |
state.resolve(new BundleDescription[] {genCap}); |
216 |
state.resolve(new BundleDescription[] {genCap}); |
| 206 |
|
217 |
|
| 207 |
assertTrue("3.0", genCap.isResolved()); |
218 |
assertTrue("3.0", genCap.isResolved()); |
| 208 |
assertTrue("3.1", genReq.isResolved()); |
219 |
assertTrue("3.1", genReq.isResolved()); |
| 209 |
genSpecs = genReq.getGenericRequires(); |
220 |
genSpecs = genReq.getGenericRequires(); |
| 210 |
assertTrue("4.0", genSpecs.length == 3); |
221 |
assertTrue("4.0", genSpecs.length == 4); |
| 211 |
assertTrue("4.1", genSpecs[0].isResolved()); |
222 |
assertTrue("4.1", genSpecs[0].isResolved()); |
| 212 |
assertEquals("4.1.1", genSpecs[0].getSupplier(), genCap.getGenericCapabilities()[0]); |
223 |
assertEquals("4.1.1", genSpecs[0].getSupplier(), genCap.getGenericCapabilities()[0]); |
| 213 |
assertTrue("4.2", genSpecs[1].isResolved()); |
224 |
assertTrue("4.2", genSpecs[1].isResolved()); |
| 214 |
assertEquals("4.2.1", genSpecs[1].getSupplier(), genCap.getGenericCapabilities()[1]); |
225 |
assertEquals("4.2.1", genSpecs[1].getSupplier(), genCap.getGenericCapabilities()[1]); |
| 215 |
assertTrue("4.3", genSpecs[2].isResolved()); |
226 |
assertTrue("4.3", genSpecs[2].isResolved()); |
| 216 |
assertEquals("4.3.1", genSpecs[2].getSupplier(), genCap.getGenericCapabilities()[2]); |
227 |
assertEquals("4.3.1", genSpecs[2].getSupplier(), genCap.getGenericCapabilities()[2]); |
|
|
228 |
assertTrue("4.4", genSpecs[3].isResolved()); |
| 229 |
assertEquals("4.4.1", genSpecs[3].getSupplier(), genCap.getGenericCapabilities()[3]); |
| 217 |
|
230 |
|
| 218 |
} |
231 |
} |
| 219 |
|
232 |
|
|
Lines 223-229
Link Here
|
| 223 |
long bundleID = 0; |
236 |
long bundleID = 0; |
| 224 |
|
237 |
|
| 225 |
manifest.put(Constants.BUNDLE_MANIFESTVERSION, "2"); |
238 |
manifest.put(Constants.BUNDLE_MANIFESTVERSION, "2"); |
| 226 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericCapablity"); |
239 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericCapability"); |
| 227 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
240 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
| 228 |
StringBuffer capabililty = new StringBuffer(); |
241 |
StringBuffer capabililty = new StringBuffer(); |
| 229 |
capabililty.append("foo; version=\"1.3.1\"; attr1=\"value1\"; attr2=\"value2\","); |
242 |
capabililty.append("foo; version=\"1.3.1\"; attr1=\"value1\"; attr2=\"value2\","); |
|
Lines 241-247
Link Here
|
| 241 |
manifest.put(Constants.BUNDLE_MANIFESTVERSION, "2"); |
254 |
manifest.put(Constants.BUNDLE_MANIFESTVERSION, "2"); |
| 242 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericCapability.frag1"); |
255 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericCapability.frag1"); |
| 243 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
256 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
| 244 |
manifest.put(Constants.FRAGMENT_HOST, "genericCapablity;bundle-version=\"[1.0.0,2.0.0)\""); |
257 |
manifest.put(Constants.FRAGMENT_HOST, "genericCapability;bundle-version=\"[1.0.0,2.0.0)\""); |
| 245 |
capabililty = new StringBuffer(); |
258 |
capabililty = new StringBuffer(); |
| 246 |
capabililty.append("fragmentStuff"); |
259 |
capabililty.append("fragmentStuff"); |
| 247 |
manifest.put(GENERIC_CAPABILITY, capabililty.toString()); |
260 |
manifest.put(GENERIC_CAPABILITY, capabililty.toString()); |
|
Lines 252-261
Link Here
|
| 252 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericRequire"); |
265 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericRequire"); |
| 253 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
266 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
| 254 |
StringBuffer required = new StringBuffer(); |
267 |
StringBuffer required = new StringBuffer(); |
|
|
268 |
required.append("genericCapability:osgi.identity; selection-filter=\"(&(version=1.0.0)(type=osgi.bundle))\","); |
| 255 |
required.append("foo; selection-filter=\"(version>=1.3.0)\","); |
269 |
required.append("foo; selection-filter=\"(version>=1.3.0)\","); |
| 256 |
required.append("bar:bartype; selection-filter=\"(attr1=value1)\","); |
270 |
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))\","); |
271 |
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"); |
272 |
required.append("fragmentStuff,"); |
|
|
273 |
required.append("genericCapability.frag1:osgi.identity; selection-filter=\"(&(version=1.0.0)(type=osgi.fragment))\""); |
| 259 |
manifest.put(GENERIC_REQUIRE, required.toString()); |
274 |
manifest.put(GENERIC_REQUIRE, required.toString()); |
| 260 |
BundleDescription genReq = state.getFactory().createBundleDescription(state, manifest, (String) manifest.get(Constants.BUNDLE_SYMBOLICNAME), bundleID++); |
275 |
BundleDescription genReq = state.getFactory().createBundleDescription(state, manifest, (String) manifest.get(Constants.BUNDLE_SYMBOLICNAME), bundleID++); |
| 261 |
|
276 |
|
|
Lines 268-284
Link Here
|
| 268 |
assertTrue("1.1", genReq.isResolved()); |
283 |
assertTrue("1.1", genReq.isResolved()); |
| 269 |
assertTrue("1.2", genCapFrag.isResolved()); |
284 |
assertTrue("1.2", genCapFrag.isResolved()); |
| 270 |
GenericSpecification[] genSpecs = genReq.getGenericRequires(); |
285 |
GenericSpecification[] genSpecs = genReq.getGenericRequires(); |
| 271 |
GenericDescription[] selectedCapabilities = genCap.getSelectedGenericCapabilities(); |
286 |
GenericDescription[] selectedHostCapabilities = genCap.getSelectedGenericCapabilities(); |
| 272 |
assertTrue("2.0", genSpecs.length == 4); |
287 |
GenericDescription[] selectedFragCapabilities = genCapFrag.getSelectedGenericCapabilities(); |
| 273 |
assertEquals("Wrong number of selected capabilities", 4, selectedCapabilities.length); |
288 |
assertTrue("2.0", genSpecs.length == 6); |
|
|
289 |
assertEquals("Wrong number of selected capabilities", 5, selectedHostCapabilities.length); |
| 290 |
assertEquals("Wrong number of selected capabilities", 1, selectedFragCapabilities.length); |
| 274 |
assertTrue("2.1", genSpecs[0].isResolved()); |
291 |
assertTrue("2.1", genSpecs[0].isResolved()); |
| 275 |
assertEquals("2.1.1", genSpecs[0].getSupplier(), selectedCapabilities[0]); |
292 |
assertEquals("2.1.1", genSpecs[0].getSupplier(), selectedHostCapabilities[0]); |
| 276 |
assertTrue("2.2", genSpecs[1].isResolved()); |
293 |
assertTrue("2.2", genSpecs[1].isResolved()); |
| 277 |
assertEquals("2.2.1", genSpecs[1].getSupplier(), selectedCapabilities[1]); |
294 |
assertEquals("2.2.1", genSpecs[1].getSupplier(), selectedHostCapabilities[1]); |
| 278 |
assertTrue("2.3", genSpecs[2].isResolved()); |
295 |
assertTrue("2.3", genSpecs[2].isResolved()); |
| 279 |
assertEquals("2.3.1", genSpecs[2].getSupplier(), selectedCapabilities[2]); |
296 |
assertEquals("2.3.1", genSpecs[2].getSupplier(), selectedHostCapabilities[2]); |
| 280 |
assertTrue("2.4", genSpecs[3].isResolved()); |
297 |
assertTrue("2.4", genSpecs[3].isResolved()); |
| 281 |
assertEquals("2.4.1", genSpecs[3].getSupplier(), selectedCapabilities[3]); |
298 |
assertEquals("2.4.1", genSpecs[3].getSupplier(), selectedHostCapabilities[3]); |
|
|
299 |
assertTrue("2.5", genSpecs[4].isResolved()); |
| 300 |
assertEquals("2.5.1", genSpecs[4].getSupplier(), selectedHostCapabilities[4]); |
| 301 |
assertTrue("2.6", genSpecs[5].isResolved()); |
| 302 |
assertEquals("2.6.1", genSpecs[5].getSupplier(), selectedFragCapabilities[0]); |
| 282 |
} |
303 |
} |
| 283 |
|
304 |
|
| 284 |
public void testGenericsIntraFrags() throws BundleException { |
305 |
public void testGenericsIntraFrags() throws BundleException { |
|
Lines 304-310
Link Here
|
| 304 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "org.eclipse.equinox.generic.frag.b"); |
325 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "org.eclipse.equinox.generic.frag.b"); |
| 305 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
326 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
| 306 |
manifest.put(Constants.FRAGMENT_HOST, "org.eclipse.equinox.generic.host;bundle-version=\"1.0.0\""); |
327 |
manifest.put(Constants.FRAGMENT_HOST, "org.eclipse.equinox.generic.host;bundle-version=\"1.0.0\""); |
| 307 |
manifest.put("Eclipse-GenericRequire", "frag.a"); |
328 |
StringBuffer required = new StringBuffer(); |
|
|
329 |
required.append("org.eclipse.equinox.generic.host:osgi.identity; selection-filter=\"(&(version=1.0.0)(type=osgi.bundle))\","); |
| 330 |
required.append("frag.a,"); |
| 331 |
required.append("org.eclipse.equinox.generic.frag.a:osgi.identity; selection-filter=\"(&(version=1.0.0)(type=osgi.fragment))\","); |
| 332 |
required.append("org.eclipse.equinox.generic.frag.b:osgi.identity; selection-filter=\"(&(version=1.0.0)(type=osgi.fragment))\""); |
| 333 |
manifest.put(GENERIC_REQUIRE, required.toString()); |
| 308 |
BundleDescription genFragB = state.getFactory().createBundleDescription(state, manifest, (String) manifest.get(Constants.BUNDLE_SYMBOLICNAME), bundleID++); |
334 |
BundleDescription genFragB = state.getFactory().createBundleDescription(state, manifest, (String) manifest.get(Constants.BUNDLE_SYMBOLICNAME), bundleID++); |
| 309 |
|
335 |
|
| 310 |
state.addBundle(genHost); |
336 |
state.addBundle(genHost); |
|
Lines 317-326
Link Here
|
| 317 |
assertTrue("1.2", genFragB.isResolved()); |
343 |
assertTrue("1.2", genFragB.isResolved()); |
| 318 |
GenericSpecification[] genSpecs = genFragB.getGenericRequires(); |
344 |
GenericSpecification[] genSpecs = genFragB.getGenericRequires(); |
| 319 |
GenericDescription[] selected = genHost.getSelectedGenericCapabilities(); |
345 |
GenericDescription[] selected = genHost.getSelectedGenericCapabilities(); |
| 320 |
assertEquals("Wrong number of selected", 1, selected.length); |
346 |
assertEquals("Wrong number of selected", 1 + 1, selected.length); // + 1 for host osgi.identity cap |
| 321 |
assertTrue("2.0", genSpecs.length == 1); |
347 |
assertTrue("2.0", genSpecs.length == 4); |
|
|
348 |
GenericDescription[] selectedHostCapabilities = genHost.getSelectedGenericCapabilities(); |
| 349 |
GenericDescription[] selectedFragACapabilities = genFragA.getSelectedGenericCapabilities(); |
| 350 |
GenericDescription[] selectedFragBCapabilities = genFragB.getSelectedGenericCapabilities(); |
| 351 |
assertEquals("Wrong number of selected capabilities", 2, selectedHostCapabilities.length); |
| 352 |
assertEquals("Wrong number of selected capabilities", 1, selectedFragACapabilities.length); |
| 353 |
assertEquals("Wrong number of selected capabilities", 1, selectedFragBCapabilities.length); |
| 322 |
assertTrue("2.1", genSpecs[0].isResolved()); |
354 |
assertTrue("2.1", genSpecs[0].isResolved()); |
| 323 |
assertEquals("2.1.1", genSpecs[0].getSupplier(), selected[0]); |
355 |
assertEquals("2.1.1", genSpecs[0].getSupplier(), selectedHostCapabilities[0]); |
|
|
356 |
assertTrue("2.2", genSpecs[1].isResolved()); |
| 357 |
assertEquals("2.2.1", genSpecs[1].getSupplier(), selectedHostCapabilities[1]); |
| 358 |
assertTrue("2.3", genSpecs[2].isResolved()); |
| 359 |
assertEquals("2.3.1", genSpecs[2].getSupplier(), selectedFragACapabilities[0]); |
| 360 |
assertTrue("2.4", genSpecs[3].isResolved()); |
| 361 |
assertEquals("2.4.1", genSpecs[3].getSupplier(), selectedFragBCapabilities[0]); |
| 324 |
} |
362 |
} |
| 325 |
|
363 |
|
| 326 |
public void testGenericsAliases() throws BundleException { |
364 |
public void testGenericsAliases() throws BundleException { |
|
Lines 333-339
Link Here
|
| 333 |
Hashtable manifest = new Hashtable(); |
371 |
Hashtable manifest = new Hashtable(); |
| 334 |
long bundleID = 0; |
372 |
long bundleID = 0; |
| 335 |
manifest.put(Constants.BUNDLE_MANIFESTVERSION, "2"); |
373 |
manifest.put(Constants.BUNDLE_MANIFESTVERSION, "2"); |
| 336 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericCapablity"); |
374 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericCapability"); |
| 337 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
375 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
| 338 |
manifest.put(Constants.EXPORT_SERVICE, "org.osgi.service.log.LogService; version=1.2"); |
376 |
manifest.put(Constants.EXPORT_SERVICE, "org.osgi.service.log.LogService; version=1.2"); |
| 339 |
manifest.put("TJW-Export", "my.great.stuff; aLong:long=5150; aDouble:double=3.14; aVersion:version=1.2.0"); |
377 |
manifest.put("TJW-Export", "my.great.stuff; aLong:long=5150; aDouble:double=3.14; aVersion:version=1.2.0"); |
|
Lines 345-350
Link Here
|
| 345 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
383 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
| 346 |
manifest.put(Constants.IMPORT_SERVICE, "org.osgi.service.log.LogService; selection-filter=(version>=1.0.0)"); |
384 |
manifest.put(Constants.IMPORT_SERVICE, "org.osgi.service.log.LogService; selection-filter=(version>=1.0.0)"); |
| 347 |
manifest.put("TJW-Import", "my.great.stuff; selection-filter=(&(aLong<=10000)(aLong>=5000))"); |
385 |
manifest.put("TJW-Import", "my.great.stuff; selection-filter=(&(aLong<=10000)(aLong>=5000))"); |
|
|
386 |
manifest.put(GENERIC_REQUIRE, "genericCapability:osgi.identity; selection-filter=\"(&(version=1.0.0)(type=osgi.bundle))\""); |
| 348 |
BundleDescription genReq = state.getFactory().createBundleDescription(state, manifest, (String) manifest.get(Constants.BUNDLE_SYMBOLICNAME), bundleID++); |
387 |
BundleDescription genReq = state.getFactory().createBundleDescription(state, manifest, (String) manifest.get(Constants.BUNDLE_SYMBOLICNAME), bundleID++); |
| 349 |
|
388 |
|
| 350 |
state.addBundle(genCap); |
389 |
state.addBundle(genCap); |
|
Lines 354-364
Link Here
|
| 354 |
assertTrue("1.0", genCap.isResolved()); |
393 |
assertTrue("1.0", genCap.isResolved()); |
| 355 |
assertTrue("1.1", genReq.isResolved()); |
394 |
assertTrue("1.1", genReq.isResolved()); |
| 356 |
GenericSpecification[] genSpecs = genReq.getGenericRequires(); |
395 |
GenericSpecification[] genSpecs = genReq.getGenericRequires(); |
| 357 |
assertTrue("2.0", genSpecs.length == 2); |
396 |
assertTrue("2.0", genSpecs.length == 3); |
| 358 |
assertTrue("2.1", genSpecs[0].isResolved()); |
397 |
assertTrue("2.1", genSpecs[0].isResolved()); |
| 359 |
assertEquals("2.1.1", genSpecs[0].getSupplier(), genCap.getGenericCapabilities()[0]); |
398 |
assertEquals("2.1.1", genSpecs[0].getSupplier(), genCap.getGenericCapabilities()[1]); |
| 360 |
assertTrue("2.2", genSpecs[1].isResolved()); |
399 |
assertTrue("2.2", genSpecs[1].isResolved()); |
| 361 |
assertEquals("2.2.1", genSpecs[1].getSupplier(), genCap.getGenericCapabilities()[1]); |
400 |
assertEquals("2.2.1", genSpecs[1].getSupplier(), genCap.getGenericCapabilities()[2]); |
|
|
401 |
assertTrue("2.3", genSpecs[2].isResolved()); |
| 402 |
assertEquals("2.3.1", genSpecs[2].getSupplier(), genCap.getGenericCapabilities()[0]); |
| 362 |
} |
403 |
} |
| 363 |
|
404 |
|
| 364 |
public void testGenericsOptionalMultiple() throws BundleException { |
405 |
public void testGenericsOptionalMultiple() throws BundleException { |
|
Lines 366-372
Link Here
|
| 366 |
Hashtable manifest = new Hashtable(); |
407 |
Hashtable manifest = new Hashtable(); |
| 367 |
long bundleID = 0; |
408 |
long bundleID = 0; |
| 368 |
manifest.put(Constants.BUNDLE_MANIFESTVERSION, "2"); |
409 |
manifest.put(Constants.BUNDLE_MANIFESTVERSION, "2"); |
| 369 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericCapablity"); |
410 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericCapability"); |
| 370 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
411 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
| 371 |
StringBuffer capabililty = new StringBuffer(); |
412 |
StringBuffer capabililty = new StringBuffer(); |
| 372 |
capabililty.append("foo; version=\"1.3.1\"; attr1=\"value1\"; attr2=\"value2\","); |
413 |
capabililty.append("foo; version=\"1.3.1\"; attr1=\"value1\"; attr2=\"value2\","); |
|
Lines 389-394
Link Here
|
| 389 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericRequire"); |
430 |
manifest.put(Constants.BUNDLE_SYMBOLICNAME, "genericRequire"); |
| 390 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
431 |
manifest.put(Constants.BUNDLE_VERSION, "1.0.0"); |
| 391 |
StringBuffer required = new StringBuffer(); |
432 |
StringBuffer required = new StringBuffer(); |
|
|
433 |
required.append("genericCapability:osgi.identity; selection-filter=\"(&(version=1.0.0)(type=osgi.bundle))\","); |
| 392 |
required.append("foo; selection-filter=\"(version>=1.3.0)\","); |
434 |
required.append("foo; selection-filter=\"(version>=1.3.0)\","); |
| 393 |
required.append("bar:bartype; selection-filter=\"(attr1=value1)\","); |
435 |
required.append("bar:bartype; selection-filter=\"(attr1=value1)\","); |
| 394 |
required.append("test.types:testtype; selection-filter=\"(&(aVersion>=2.0.0)(aLong>=5555)(aDouble>=1.00)(aUri=file:/test)(aSet=c)(aString=someString))\","); |
436 |
required.append("test.types:testtype; selection-filter=\"(&(aVersion>=2.0.0)(aLong>=5555)(aDouble>=1.00)(aUri=file:/test)(aSet=c)(aString=someString))\","); |
|
Lines 405-425
Link Here
|
| 405 |
assertTrue("1.0", genCap.isResolved()); |
447 |
assertTrue("1.0", genCap.isResolved()); |
| 406 |
assertTrue("1.1", genReq.isResolved()); |
448 |
assertTrue("1.1", genReq.isResolved()); |
| 407 |
GenericSpecification[] genSpecs = genReq.getGenericRequires(); |
449 |
GenericSpecification[] genSpecs = genReq.getGenericRequires(); |
| 408 |
assertTrue("2.0", genSpecs.length == 6); |
450 |
assertTrue("2.0", genSpecs.length == 7); |
| 409 |
assertTrue("2.1", genSpecs[0].isResolved()); |
451 |
assertTrue("2.1", genSpecs[0].isResolved()); |
| 410 |
assertEquals("2.1.1", genSpecs[0].getSupplier(), genCap.getGenericCapabilities()[0]); |
452 |
assertEquals("2.1.1", genSpecs[0].getSupplier(), genCap.getGenericCapabilities()[0]); |
| 411 |
assertTrue("2.2", genSpecs[1].isResolved()); |
453 |
assertTrue("2.2", genSpecs[1].isResolved()); |
| 412 |
assertEquals("2.2.1", genSpecs[1].getSupplier(), genCap.getGenericCapabilities()[1]); |
454 |
assertEquals("2.2.1", genSpecs[1].getSupplier(), genCap.getGenericCapabilities()[1]); |
| 413 |
assertTrue("2.3", genSpecs[2].isResolved()); |
455 |
assertTrue("2.3", genSpecs[2].isResolved()); |
| 414 |
assertEquals("2.3.1", genSpecs[2].getSupplier(), genCap.getGenericCapabilities()[2]); |
456 |
assertEquals("2.3.1", genSpecs[2].getSupplier(), genCap.getGenericCapabilities()[2]); |
| 415 |
assertFalse("2.4", genSpecs[3].isResolved()); |
457 |
assertTrue("2.3", genSpecs[3].isResolved()); |
| 416 |
assertTrue("2.5", genSpecs[4].isResolved()); |
458 |
assertEquals("2.3.1", genSpecs[3].getSupplier(), genCap.getGenericCapabilities()[3]); |
| 417 |
assertEquals("2.5.1", genSpecs[4].getSupplier(), genCap.getGenericCapabilities()[3]); |
459 |
assertFalse("2.4", genSpecs[4].isResolved()); |
| 418 |
assertTrue("2.6", genSpecs[5].isResolved()); |
460 |
assertTrue("2.5", genSpecs[5].isResolved()); |
| 419 |
GenericDescription[] suppliers = genSpecs[5].getSuppliers(); |
461 |
assertEquals("2.5.1", genSpecs[5].getSupplier(), genCap.getGenericCapabilities()[4]); |
|
|
462 |
assertTrue("2.6", genSpecs[6].isResolved()); |
| 463 |
GenericDescription[] suppliers = genSpecs[6].getSuppliers(); |
| 420 |
assertTrue("2.6.1", suppliers != null && suppliers.length == 2); |
464 |
assertTrue("2.6.1", suppliers != null && suppliers.length == 2); |
| 421 |
assertEquals("2.6.2", suppliers[0], genCap.getGenericCapabilities()[5]); |
465 |
assertEquals("2.6.2", suppliers[0], genCap.getGenericCapabilities()[6]); |
| 422 |
assertEquals("2.6.3", suppliers[1], genCap.getGenericCapabilities()[4]); |
466 |
assertEquals("2.6.3", suppliers[1], genCap.getGenericCapabilities()[5]); |
| 423 |
} |
467 |
} |
| 424 |
|
468 |
|
| 425 |
public void testGenericsCycles() throws BundleException { |
469 |
public void testGenericsCycles() throws BundleException { |
|
Lines 481-498
Link Here
|
| 481 |
GenericSpecification[] genSpecs = genReq.getGenericRequires(); |
525 |
GenericSpecification[] genSpecs = genReq.getGenericRequires(); |
| 482 |
GenericDescription[] selected = genCap.getSelectedGenericCapabilities(); |
526 |
GenericDescription[] selected = genCap.getSelectedGenericCapabilities(); |
| 483 |
assertTrue("2.0", genSpecs.length == 4); |
527 |
assertTrue("2.0", genSpecs.length == 4); |
| 484 |
assertEquals("Wrong number of selected", 4, selected.length); |
528 |
assertEquals("Wrong number of selected", 4 + 1, selected.length); // + 1 for host osgi.identity caps |
| 485 |
assertTrue("2.1", genSpecs[0].isResolved()); |
529 |
assertTrue("2.1", genSpecs[0].isResolved()); |
| 486 |
assertEquals("2.1.1", genSpecs[0].getSupplier(), selected[0]); |
530 |
assertEquals("2.1.1", genSpecs[0].getSupplier(), selected[1]); |
| 487 |
assertTrue("2.2", genSpecs[1].isResolved()); |
531 |
assertTrue("2.2", genSpecs[1].isResolved()); |
| 488 |
assertEquals("2.2.1", genSpecs[1].getSupplier(), selected[1]); |
532 |
assertEquals("2.2.1", genSpecs[1].getSupplier(), selected[2]); |
| 489 |
assertTrue("2.3", genSpecs[2].isResolved()); |
533 |
assertTrue("2.3", genSpecs[2].isResolved()); |
| 490 |
assertEquals("2.3.1", genSpecs[2].getSupplier(), selected[2]); |
534 |
assertEquals("2.3.1", genSpecs[2].getSupplier(), selected[3]); |
| 491 |
assertTrue("2.4", genSpecs[3].isResolved()); |
535 |
assertTrue("2.4", genSpecs[3].isResolved()); |
| 492 |
assertEquals("2.4.1", genSpecs[3].getSupplier(), selected[3]); |
536 |
assertEquals("2.4.1", genSpecs[3].getSupplier(), selected[4]); |
| 493 |
genSpecs = genCap.getGenericRequires(); |
537 |
genSpecs = genCap.getGenericRequires(); |
| 494 |
assertTrue("3.0", genSpecs.length == 1); |
538 |
assertTrue("3.0", genSpecs.length == 1); |
| 495 |
assertTrue("3.1", genSpecs[0].isResolved()); |
539 |
assertTrue("3.1", genSpecs[0].isResolved()); |
| 496 |
assertEquals("3.1.1", genSpecs[0].getSupplier(), genReq.getGenericCapabilities()[0]); |
540 |
assertEquals("3.1.1", genSpecs[0].getSupplier(), genReq.getGenericCapabilities()[1]); |
| 497 |
} |
541 |
} |
| 498 |
} |
542 |
} |