public void afterProjectsRead()

in src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java [71:113]


    public void afterProjectsRead(final MavenSession session) throws MavenExecutionException {
        final Environment env = new Environment();
        env.artifactHandlerManager = artifactHandlerManager;
        env.resolver = resolver;
        env.logger = logger;
        env.session = session;

        final String version;
        try {
            version = getCurrentPluginVersion();
        } catch (IOException e) {
            throw new MavenExecutionException("Could not retrieve extension's version", e);
        }
        logger.debug("Searching for projects leveraging plugin '" + PLUGIN_ID + "' in version "+ version + "...");

        for (final MavenProject project : session.getProjects()) {
            // consider all projects where this plugin is configured
            Plugin plugin = project.getPlugin(PLUGIN_ID);
            if (plugin != null) {
                if (version.equals(plugin.getVersion())) {
                    logger.debug("Found project " + project + " leveraging " + PLUGIN_ID +" in version "+ version + ".");
                    final ProjectInfo info = new ProjectInfo();
                    info.plugin = plugin;
                    info.project = project;
                    info.defaultProvisioningModelName = ModelPreprocessor.nodeValue(plugin,
                            "defaultProvisioningModelName", null);
                    env.modelProjects.put(project.getGroupId() + ":" + project.getArtifactId(), info);
                    File processed = new File(project.getBuild().getDirectory(), "features/processed");
                    try {
                        if ( processed.exists() ) {
                            FileUtils.forceDelete(processed);
                        }
                    } catch (IOException e) {
                        throw new MavenExecutionException("Failed to delete: " + processed.getPath(), e);
                    }
                } else {
                    logger.debug("Skipping project " + project + " leveraging " + PLUGIN_ID +" in another version "+ project.getVersion() + ".");
                }
            }
        }
        FeatureModelConverter.convert(env);
        new ModelPreprocessor().addDependencies(env);
    }