While the getArtifacts method returned only the "direct" artifacts in maven2 now also the childs are returned which leads to a VERY broken behavior
You don't describe what the broken behaviour is or provide an example project, which makes it hard to fix.
Note "MavenProject.getArtifacts" should always returns both direct and transitive dependencies both in Maven 2 and Maven 3, but there may be a difference between them wrt. which dependencies are resolved at the time of provisioning. This is because Maven 3 honours the @requiresDependencyResolution mojo setting and makes sure the resolved set matches the request, whereas with Maven 2 the visible set of resolved dependencies could vary depending on what plugins ran before your plugin.
Regardless of the difference between Maven 2 and Maven 3, there was an explicit request to look for bundles in transitive dependencies https://ops4j1.jira.com/browse/PAXCONSTRUCT-123 which means the plugin is currently "working as designed".
Whether we should provide a switch to only look at direct (non-transitive) dependencies is of course another question...
Thank's for the fast response and sorry for the missing example. The problem is quite simple:
checkout the following version of pax-wicket
mvn clena install
and add in samples/pom.xml <noDependencies>true</> setting for pax-maven-plugin
This will run felix with all deps (although no-dep is set); then...
checkout the following commit (nothing changed but downgrade to 1.4 of pax-construct)
remove runner folder
run paxrovision again
Only the direct deps are resolved.
Maybe I missed something but since all deps are resolved although the noDependencies flag is used this sounds rather like a bug to me.