class DefaultArtifactInstaller implements ArtifactInstaller {

    private final RepositorySystem repositorySystem;

    @Inject
    DefaultArtifactInstaller(@Nonnull RepositorySystem repositorySystem) {
        this.repositorySystem = nonNull(repositorySystem);
    }

    @Override
    public void install(ArtifactInstallerRequest request) throws ArtifactInstallerException, IllegalArgumentException {<FILL_FUNCTION_BODY>}
}

        nonNull(request, "request");
        InternalSession session = InternalSession.from(request.getSession());
        try {
            InstallRequest installRequest =
                    new InstallRequest().setArtifacts(session.toArtifacts(request.getArtifacts()));

            InstallResult result = repositorySystem.install(session.getSession(), installRequest);
        } catch (InstallationException e) {
            throw new ArtifactInstallerException(e.getMessage(), e);
        }
    
<no_super_class>