class LibraryServiceImpl implements LibraryService {

    @Override
    public WorkspaceProject createProject(final OrganizationalUnit organizationalUnit,
                                          final String remoteRepositoryUrl,
                                          final String repositoryAlias) {
        final String projectName = repositoryAlias != null ? repositoryAlias : DEFAULT_PROJECT_NAME;

        final Optional<Archetype> baseArchetype = archetypeService.getBaseKieArchetype();

        final String baseArchetypeAlias = baseArchetype.map(Archetype::getAlias).orElse(null);

        final GAV gav = createGAV(projectName,
                                  organizationalUnit);
        final POM pom = createPOM(projectName,
                                  projectName,
                                  gav);

        return createProject(organizationalUnit,
                             pom,
                             DeploymentMode.VALIDATED,
                             baseArchetypeAlias,
                             remoteRepositoryUrl);
    }

    public  LibraryServiceImpl();
    @Inject public  LibraryServiceImpl(final OrganizationalUnitService ouService,
                              final RefactoringQueryService refactoringQueryService,
                              final LibraryPreferences preferences,
                              final AuthorizationManager authorizationManager,
                              final SessionInfo sessionInfo,
                              final ExplorerServiceHelper explorerServiceHelper,
                              final WorkspaceProjectService projectService,
                              final KieModuleService moduleService,
                              final ExamplesService examplesService,
                              @Named("ioStrategy") final IOService ioService,
                              final UserManagerService userManagerService,
                              final IndexStatusOracle indexOracle,
                              final SpaceConfigStorageRegistry spaceConfigStorageRegistry,
                              final ClusterService clusterService,
                              final ArchetypeService archetypeService);

}