class AbstractModuleService implements ModuleServiceCore<T>,
                   ModuleFactory<T> {

    @Override
    public void reImport(final Path pathToPomXML) {

        try {
            final org.uberfire.java.nio.file.Path projectDirectory = Paths.convert(pathToPomXML).getParent();
            final Path path = Paths.convert(projectDirectory);
            final Module module = resourceResolver.resolveModule(path);

            invalidateDMOCache.fire(new InvalidateDMOModuleCacheEvent(sessionInfo,
                                                                      module,
                                                                      path));
        } catch (final Exception e) {
            throw ExceptionUtilities.handleException(e);
        }
    }

    protected  AbstractModuleService();
    public  AbstractModuleService(final IOService ioService,
                                 final POMService pomService,
                                 final RepositoryService repoService,
                                 final Event<NewModuleEvent> newModuleEvent,
                                 final Event<NewPackageEvent> newPackageEvent,
                                 final Event<InvalidateDMOModuleCacheEvent> invalidateDMOCache,
                                 final SessionInfo sessionInfo,
                                 final CommentedOptionFactory commentedOptionFactory,
                                 final ModuleFinder moduleFinder,
                                 final ResourceResolver resourceResolver);

}