return classLoader.findResource(normalizedResource); } else { ClassLoaderModel classLoaderModel = this.getArtifactDescriptor().getClassLoaderModel(); for (BundleDependency dependency : classLoaderModel.getDependencies()) { BundleDescriptor descriptor = dependency.getDescriptor();
createArtifactClassLoaderFilter(artifactDescriptor.getClassLoaderModel(), parentLookupPolicy); for (ArtifactPluginDescriptor artifactPluginDescriptor : artifactPluginDescriptors) { final ArtifactClassLoaderFilter classLoaderFilter = createPluginClassLoaderFilter(artifactPluginDescriptor, artifactDescriptor.getClassLoaderModel().getExportedPackages(), parentLookupPolicy); regionClassLoader.addClassLoader(artifactPluginClassLoaders.get(artifactPluginIndex), classLoaderFilter);
@Test public void remembersRamlApiClassLoader() throws Exception { final ClassLoader parentClassLoader = mock(ClassLoader.class); ArtifactDescriptor appDescriptor = mock(ArtifactDescriptor.class); RegionClassLoader regionClassLoader = new RegionClassLoader(ARTIFACT_ID, appDescriptor, parentClassLoader, lookupPolicy); createClassLoaders(parentClassLoader); ClassLoaderModel classLoaderModel = new ClassLoaderModel.ClassLoaderModelBuilder() .dependingOn(newHashSet(new BundleDependency.Builder() .setBundleUri(API_LOCATION.toURI()) .setDescriptor(new BundleDescriptor.Builder() .setGroupId(GROUP_ID) .setArtifactId(SPECIFIC_ARTIFACT_ID) .setVersion(ARTIFACT_VERSION) .setClassifier("raml") .setType("zip") .build()) .build())) .build(); when(appDescriptor.getClassLoaderModel()).thenReturn(classLoaderModel); String apiResource = format(SPECIFIC_RESOURCE_FORMAT, ARTIFACT_VERSION, "raml", "zip", API_RESOURCE_NAME); assertThat(regionClassLoader.findResource(apiResource), is(API_LOADED_RESOURCE)); assertThat(regionClassLoader.findResource(apiResource), is(API_LOADED_RESOURCE)); assertThat(regionClassLoader.findResource(apiResource), is(API_LOADED_RESOURCE)); assertThat(regionClassLoader.findResource(apiResource), is(API_LOADED_RESOURCE)); assertThat(regionClassLoader.findResource(apiResource), is(API_LOADED_RESOURCE)); verify(appDescriptor, times(1)).getClassLoaderModel(); }
private void getResourceFromApiArtifact(String apiKind, String resource, URL expectedResult) throws Exception { final ClassLoader parentClassLoader = mock(ClassLoader.class); ArtifactDescriptor appDescriptor = mock(ArtifactDescriptor.class); RegionClassLoader regionClassLoader = new RegionClassLoader(ARTIFACT_ID, appDescriptor, parentClassLoader, lookupPolicy); createClassLoaders(parentClassLoader); ClassLoaderModel classLoaderModel = new ClassLoaderModel.ClassLoaderModelBuilder() .dependingOn(newHashSet(new BundleDependency.Builder() .setBundleUri(API_LOCATION.toURI()) .setDescriptor(new BundleDescriptor.Builder() .setGroupId(GROUP_ID) .setArtifactId(SPECIFIC_ARTIFACT_ID) .setVersion(ARTIFACT_VERSION) .setClassifier(apiKind) .setType("zip") .build()) .build())) .build(); when(appDescriptor.getClassLoaderModel()).thenReturn(classLoaderModel); URL result = regionClassLoader.findResource(resource); assertThat(result, is(expectedResult)); }