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);
}