Defines all of the packages in the class loader that are not currently defined, using the assembly as a source.
210 {
211#if FIRST_PASS
212 throw new NotImplementedException();
213#else
214 var wrapper = (RuntimeAssemblyClassLoader)
JVM.Context.
ClassLoaderFactory.GetClassLoaderWrapper(_this);
215 var sealBase = GetCodeBase(wrapper.MainAssembly);
216
217 foreach (var packages in wrapper.GetPackageInfo())
218 {
219
220 var manifest = packages.Key != null ? GetManifestForAssemblyJar(wrapper.MainAssembly, packages.Key) : null;
221
222
223 var mainAttributes = manifest?.getMainAttributes();
224
225
226 foreach (var name in packages.Value)
227 {
228 if (_this.getPackage(name) != null)
229 continue;
230
231
232 var packageAttributes = manifest?.getAttributes(name.Replace('.', '/') + '/');
233
234
235 _this.definePackage(
236 name,
237 GetAttributeValue(global::java.util.jar.Attributes.Name.SPECIFICATION_TITLE, packageAttributes, mainAttributes),
238 GetAttributeValue(global::java.util.jar.Attributes.Name.SPECIFICATION_VERSION, packageAttributes, mainAttributes),
239 GetAttributeValue(global::java.util.jar.Attributes.Name.SPECIFICATION_VENDOR, packageAttributes, mainAttributes),
240 GetAttributeValue(global::java.util.jar.Attributes.Name.IMPLEMENTATION_TITLE, packageAttributes, mainAttributes),
241 GetAttributeValue(global::java.util.jar.Attributes.Name.IMPLEMENTATION_VERSION, packageAttributes, mainAttributes),
242 GetAttributeValue(global::java.util.jar.Attributes.Name.IMPLEMENTATION_VENDOR, packageAttributes, mainAttributes),
243 string.Equals(GetAttributeValue(global::java.util.jar.Attributes.Name.SEALED, packageAttributes, mainAttributes), "true", StringComparison.OrdinalIgnoreCase) ? sealBase : null);
244 }
245 }
246#endif
247 }