class ArchetypeServiceImpl implements ArchetypeService {

    @Override
    public Optional<Archetype> getBaseKieArchetype() {
        final String repositoryAlias = makeRepositoryAlias(BASE_KIE_PROJECT_TEMPLATE_GAV);

        final Archetype archetype = archetypeConfigStorage.loadArchetype(repositoryAlias);

        if (archetype == null) {
            LOGGER.warn("The base kie project archetype is not registered.");
        }

        return Optional.ofNullable(archetype);
    }

    public  ArchetypeServiceImpl();
    @Inject public  ArchetypeServiceImpl(final @Named("ioStrategy") IOService ioService,
                                final RepositoryService repositoryService,
                                final OrganizationalUnitService ouService,
                                final Event<ArchetypeListUpdatedEvent> archetypeListUpdatedEvent,
                                final ArchetypeConfigStorage archetypeConfigStorage,
                                final PathUtil pathUtil,
                                final ArchetypePreferencesManager archetypePreferencesManager,
                                final KieModuleService moduleService,
                                final POMService pomService);

}