import {JavaBase} from './base-installer'; import {JavaInstallerOptions} from './base-models'; import {LocalDistribution} from './local/installer'; import {ZuluDistribution} from './zulu/installer'; import {AdoptDistribution, AdoptImplementation} from './adopt/installer'; import {TemurinDistribution, TemurinImplementation} from './temurin/installer'; import {LibericaDistributions} from './liberica/installer'; import {MicrosoftDistributions} from './microsoft/installer'; import {SemeruDistribution} from './semeru/installer'; import {CorrettoDistribution} from './corretto/installer'; import {OracleDistribution} from './oracle/installer'; import {DragonwellDistribution} from './dragonwell/installer'; enum JavaDistribution { Adopt = 'adopt', AdoptHotspot = 'adopt-hotspot', AdoptOpenJ9 = 'adopt-openj9', Temurin = 'temurin', Zulu = 'zulu', Liberica = 'liberica', JdkFile = 'jdkfile', Microsoft = 'microsoft', Semeru = 'semeru', Corretto = 'corretto', Oracle = 'oracle', Dragonwell = 'dragonwell' } export function getJavaDistribution( distributionName: string, installerOptions: JavaInstallerOptions, jdkFile?: string ): JavaBase | null { switch (distributionName) { case JavaDistribution.JdkFile: return new LocalDistribution(installerOptions, jdkFile); case JavaDistribution.Adopt: case JavaDistribution.AdoptHotspot: return new AdoptDistribution( installerOptions, AdoptImplementation.Hotspot ); case JavaDistribution.AdoptOpenJ9: return new AdoptDistribution( installerOptions, AdoptImplementation.OpenJ9 ); case JavaDistribution.Temurin: return new TemurinDistribution( installerOptions, TemurinImplementation.Hotspot ); case JavaDistribution.Zulu: return new ZuluDistribution(installerOptions); case JavaDistribution.Liberica: return new LibericaDistributions(installerOptions); case JavaDistribution.Microsoft: return new MicrosoftDistributions(installerOptions); case JavaDistribution.Semeru: return new SemeruDistribution(installerOptions); case JavaDistribution.Corretto: return new CorrettoDistribution(installerOptions); case JavaDistribution.Oracle: return new OracleDistribution(installerOptions); case JavaDistribution.Dragonwell: return new DragonwellDistribution(installerOptions); default: return null; } }