[ https://issues.apache.org/jira/browse/ARIES-1772?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Estermann updated ARIES-1772: ------------------------------------ Description: Currently the list of scanned classes by blueprint-maven-plugin can be restricted using scanPath parameter, so the list can also contain the classes of the project dependencies. With my projects I experience two kind of issues with it: * If the the scan path is chosen too widely it may lead to a build failure. For example: Assume project A has a dependency to project B an both have the same base package, which is chosen as the scan path. Project B has a blueprint bean, which implements an interface from some +provided+ dependency of it. The build of project A will fail then, because it will try to scan a blueprint bean of project B but it will miss its provided dependency. An example error message: {code:java} Failed to execute goal org.apache.aries.blueprint:blueprint-maven-plugin:1.9.0:blueprint-generate (default) on project email-template-editor-core: Execution default of goal org.apache.aries.blueprint:blueprint-maven-plugin:1.9.0:blueprint-generate failed: A required class was missing while executing org.apache.aries.blueprint:blueprint-maven-plugin:1.9.0:blueprint-generate: com/mycorporation/scheduler/api/ScheduledService{code} * If a bean of project B appears in the autowire.xml of project A, but the package of that bean is not imported in the manifest of project A, a ClassNotFoundException will be thrown during runtime: {code:java} java.lang.ClassNotFoundException: com.mycorporation.project-a.commons.notification.IncomingNotificationService from [Module "deployment.com.mycorporation.project-b.commons.core:0.0.1.SNAPSHOT" from Service Module Loader] {code} I suggest to add an option, to exclude dependencies from the list of scanned classes, like [maven-bundle-plugin's excludeDependencies|http://felix.apache.org/components/bundle-plugin/bundle-mojo.html#excludeDependencies] for example, and give this option per default such value as to exclude all dependencies. was: Currently the list of scanned classes by blueprint-maven-plugin can be restricted using scanPath parameter, so the list can also contain the classes of the project dependencies. With my projects I experience two kind of issues with it: * If the the scan path is chosen too widely it may lead to a build failure. For example: Assume project A has a dependency to project B an both have the same base package, which is chosen as the scan path. Project B has a blueprint bean, which implements an interface from some +provided+ dependency of it. The build of project A will fail then, because it will try to scan a blueprint bean of project B but it will miss its provided dependency. An example error message: {code:java} Failed to execute goal org.apache.aries.blueprint:blueprint-maven-plugin:1.9.0:blueprint-generate (default) on project email-template-editor-core: Execution default of goal org.apache.aries.blueprint:blueprint-maven-plugin:1.9.0:blueprint-generate failed: A required class was missing while executing org.apache.aries.blueprint:blueprint-maven-plugin:1.9.0:blueprint-generate: com/mycorporation/scheduler/api/ScheduledService{code} * If a bean of project B appears in the autowire.xml of project A, but the package of that bean is not imported in the manifest of project A, a ClassNotFoundException will be thrown during runtime: {code:java} java.lang.ClassNotFoundException: com.mycorporation.project-a.commons.notification.IncomingNotificationService from [Module "deployment.com.mycorporation.project-b.commons.core:0.0.1.SNAPSHOT" from Service Module Loader] {code} I suggest to add an option, to exclude dependencies from the list of scanned classes, like [maven-bundle-plugin's excludeDependencies|http://felix.apache.org/components/bundle-plugin/bundle-mojo.html#excludeDependencies] for example. > Add an option to blueprint-maven-plugin to exclude dependencies. > ---------------------------------------------------------------- > > Key: ARIES-1772 > URL: https://issues.apache.org/jira/browse/ARIES-1772 > Project: Aries > Issue Type: New Feature > Components: Blueprint > Affects Versions: blueprint-maven-plugin-1.9.0 > Reporter: Daniel Estermann > Assignee: Dominik Przybysz > Priority: Major > > Currently the list of scanned classes by blueprint-maven-plugin can be > restricted using scanPath parameter, so the list can also contain the classes > of the project dependencies. With my projects I experience two kind of issues > with it: > * If the the scan path is chosen too widely it may lead to a build failure. > For example: Assume project A has a dependency to project B an both have the > same base package, which is chosen as the scan path. Project B has a > blueprint bean, which implements an interface from some +provided+ dependency > of it. The build of project A will fail then, because it will try to scan a > blueprint bean of project B but it will miss its provided dependency. An > example error message: > > {code:java} > Failed to execute goal > org.apache.aries.blueprint:blueprint-maven-plugin:1.9.0:blueprint-generate > (default) on project email-template-editor-core: Execution default of goal > org.apache.aries.blueprint:blueprint-maven-plugin:1.9.0:blueprint-generate > failed: A required class was missing while executing > org.apache.aries.blueprint:blueprint-maven-plugin:1.9.0:blueprint-generate: > com/mycorporation/scheduler/api/ScheduledService{code} > > * If a bean of project B appears in the autowire.xml of project A, but the > package of that bean is not imported in the manifest of project A, a > ClassNotFoundException will be thrown during runtime: > > {code:java} > java.lang.ClassNotFoundException: > com.mycorporation.project-a.commons.notification.IncomingNotificationService > from [Module > "deployment.com.mycorporation.project-b.commons.core:0.0.1.SNAPSHOT" from > Service Module Loader] > {code} > > I suggest to add an option, to exclude dependencies from the list of scanned > classes, like [maven-bundle-plugin's > excludeDependencies|http://felix.apache.org/components/bundle-plugin/bundle-mojo.html#excludeDependencies] > for example, and give this option per default such value as to exclude all > dependencies. > -- This message was sent by Atlassian JIRA (v7.6.3#76005)