use of org.graalvm.component.installer.model.ComponentRegistry in project graal by oracle.
the class GraalChannel method loadStorage.
@Override
protected ComponentStorage loadStorage() throws IOException {
FileDownloader dn = new FileDownloader(fb.l10n("OLDS_ReleaseFile"), getIndexURL(), fb);
dn.download();
Path storagePath = dn.getLocalFile().toPath();
List<ReleaseEntry> releases = loadReleasesIndex(storagePath);
if (releases.isEmpty()) {
return throwEmptyStorage();
}
MergeStorage store = new MergeStorage(localRegistry, fb);
store.setAcceptAllSources(true);
for (ReleaseEntry en : releases) {
URL catURL = en.getCatalogURL();
Version v = Version.fromString(en.getVersion().displayString());
SoftwareChannelSource src = new SoftwareChannelSource(catURL.toString(), en.getLabel());
WebCatalog cata = new WebCatalog(src.getLocationURL(), src) {
@Override
protected RemotePropertiesStorage createPropertiesStorage(Feedback aFeedback, ComponentRegistry aLocal, Properties props, String selector, URL baseURL) {
return new RemotePropertiesStorage(aFeedback, aLocal, props, selector, v, baseURL);
}
};
cata.init(localRegistry, fb);
cata.setMatchVersion(en.getVersion().match(Version.Match.Type.EXACT));
cata.setRemoteProcessor((i) -> configureLicense(i, en));
store.addChannel(src, cata);
}
return store;
}
use of org.graalvm.component.installer.model.ComponentRegistry in project graal by oracle.
the class GraalEditionList method createComponentCatalog.
@Override
public ComponentCatalog createComponentCatalog(CommandInput in) {
ComponentRegistry targetGraalVM = in.getLocalRegistry();
if (targetGraalVM != this.targetGraal) {
GraalEditionList gl = listGraalEditions(in, targetGraalVM);
return gl.createComponentCatalog(in);
}
if (catalog != null) {
return catalog;
}
String edId = in.optValue(Commands.OPTION_USE_EDITION, "");
GraalEdition ge = getEdition(edId);
RemoteCatalogDownloader downloader = createEditionDownloader(ge);
CatalogContents col = new CatalogContents(feedback, downloader.getStorage(), targetGraalVM);
return catalog = col;
}
use of org.graalvm.component.installer.model.ComponentRegistry in project graal by oracle.
the class CatalogInstallTest method testInstallDependencyFromSameDirectory.
/**
* Checks that dependencies can be loaded from the same directory as the installed Component.
*/
@Test
public void testInstallDependencyFromSameDirectory() throws Exception {
Path ruby193Source = dataFile("../repo/19.3.0.0/r");
Path llvm193Source = dataFile("../repo/19.3.0.0/llvm-toolchain");
// they should be next to eah other
assertEquals(ruby193Source.getParent(), llvm193Source.getParent());
files.add(ruby193Source.toFile());
setupVersion("19.3.0.0");
// no external catalog
downloader = new RemoteCatalogDownloader(this, this, (URL) null);
downloader.addLocalChannelSource(new SoftwareChannelSource(ruby193Source.getParent().toFile().toURI().toString()));
catalogFactory = new CatalogFactory() {
@Override
public ComponentCatalog createComponentCatalog(CommandInput input) {
return new CatalogContents(CatalogInstallTest.this, downloader.getStorage(), input.getLocalRegistry());
}
@Override
public List<GraalEdition> listEditions(ComponentRegistry targetGraalVM) {
return Collections.emptyList();
}
};
FileIterable fit = new FileIterable(this, this);
fit.setCatalogFactory(catalogFactory);
paramIterable = fit;
InstallCommand cmd = new InstallCommand();
cmd.init(this, withBundle(InstallCommand.class));
cmd.executionInit();
cmd.executeStep(cmd::prepareInstallation, false);
assertFalse(cmd.getDependencies().isEmpty());
}
use of org.graalvm.component.installer.model.ComponentRegistry in project graal by oracle.
the class InstallLicensedCatalogTest method initCatalogIterable.
private void initCatalogIterable(URL u) {
GraalChannel channel = new GraalChannel(this, this, getLocalRegistry());
channel.setIndexURL(u);
cfactory = new CatalogFactory() {
@Override
public ComponentCatalog createComponentCatalog(CommandInput input) {
try {
return new CatalogContents(InstallLicensedCatalogTest.this, channel.getStorage(), localRegistry);
} catch (IOException ex) {
fail("Unexpected exception");
return null;
}
}
@Override
public List<GraalEdition> listEditions(ComponentRegistry targetGraalVM) {
return Collections.emptyList();
}
};
paramIterable = new CatalogIterable(this, this);
}
use of org.graalvm.component.installer.model.ComponentRegistry in project graal by oracle.
the class InstallerTest method setUp.
@Before
public void setUp() throws IOException {
targetPath = folder.newFolder("inst").toPath();
storage = new MockStorage();
registry = new ComponentRegistry(this, storage);
fileOps = SystemUtils.isWindows() ? new WindowsFileOperations() : new DefaultFileOperations();
fileOps.init(this);
fileOps.setRootPath(targetPath);
}
Aggregations