1
0
Files
setup-java/src/distributions/distribution-factory.ts
T

100 lines
3.5 KiB
TypeScript
Raw Normal View History

import {JavaBase} from './base-installer.js';
import {JavaInstallerOptions} from './base-models.js';
import {LocalDistribution} from './local/installer.js';
import {ZuluDistribution} from './zulu/installer.js';
import {AdoptDistribution, AdoptImplementation} from './adopt/installer.js';
import {
TemurinDistribution,
TemurinImplementation
} from './temurin/installer.js';
import {LibericaDistributions} from './liberica/installer.js';
2026-07-14 20:49:31 +02:00
import {LibericaNikDistributions} from './liberica-nik/installer.js';
import {MicrosoftDistributions} from './microsoft/installer.js';
import {SemeruDistribution} from './semeru/installer.js';
import {CorrettoDistribution} from './corretto/installer.js';
import {OracleDistribution} from './oracle/installer.js';
import {DragonwellDistribution} from './dragonwell/installer.js';
import {SapMachineDistribution} from './sapmachine/installer.js';
import {
GraalVMCommunityDistribution,
GraalVMDistribution
} from './graalvm/installer.js';
import {JetBrainsDistribution} from './jetbrains/installer.js';
import {KonaDistribution} from './kona/installer.js';
enum JavaDistribution {
Adopt = 'adopt',
AdoptHotspot = 'adopt-hotspot',
AdoptOpenJ9 = 'adopt-openj9',
2021-08-06 12:12:36 +02:00
Temurin = 'temurin',
Zulu = 'zulu',
2021-11-29 12:15:06 +03:00
Liberica = 'liberica',
2026-07-14 20:49:31 +02:00
LibericaNik = 'liberica-nik',
JdkFile = 'jdkfile',
2022-04-29 12:38:36 +02:00
Microsoft = 'microsoft',
2023-03-21 11:32:38 +02:00
Semeru = 'semeru',
Corretto = 'corretto',
2023-09-20 19:22:11 +08:00
Oracle = 'oracle',
Dragonwell = 'dragonwell',
2024-09-18 17:17:11 +02:00
SapMachine = 'sapmachine',
2024-12-12 16:21:52 -06:00
GraalVM = 'graalvm',
GraalVMCommunity = 'graalvm-community',
2026-07-07 23:00:40 +08:00
JetBrains = 'jetbrains',
Kona = 'kona'
}
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
);
2021-08-06 12:12:36 +02:00
case JavaDistribution.Temurin:
return new TemurinDistribution(
installerOptions,
TemurinImplementation.Hotspot
);
case JavaDistribution.Zulu:
return new ZuluDistribution(installerOptions);
2021-11-29 12:15:06 +03:00
case JavaDistribution.Liberica:
return new LibericaDistributions(installerOptions);
2026-07-14 20:49:31 +02:00
case JavaDistribution.LibericaNik:
return new LibericaNikDistributions(installerOptions);
case JavaDistribution.Microsoft:
return new MicrosoftDistributions(installerOptions);
2023-03-21 11:32:38 +02:00
case JavaDistribution.Semeru:
return new SemeruDistribution(installerOptions);
2022-04-29 12:38:36 +02:00
case JavaDistribution.Corretto:
return new CorrettoDistribution(installerOptions);
case JavaDistribution.Oracle:
return new OracleDistribution(installerOptions);
2023-09-20 19:22:11 +08:00
case JavaDistribution.Dragonwell:
return new DragonwellDistribution(installerOptions);
case JavaDistribution.SapMachine:
return new SapMachineDistribution(installerOptions);
2024-09-18 17:17:11 +02:00
case JavaDistribution.GraalVM:
return new GraalVMDistribution(installerOptions);
case JavaDistribution.GraalVMCommunity:
return new GraalVMCommunityDistribution(installerOptions);
2024-12-12 16:21:52 -06:00
case JavaDistribution.JetBrains:
return new JetBrainsDistribution(installerOptions);
2026-07-07 23:00:40 +08:00
case JavaDistribution.Kona:
return new KonaDistribution(installerOptions);
default:
return null;
}
}